计算机图形学电子教案c3-1

计算机图形学电子教案c3-1

ID:41927489

大小:1.99 MB

页数:117页

时间:2019-09-05

计算机图形学电子教案c3-1_第1页
计算机图形学电子教案c3-1_第2页
计算机图形学电子教案c3-1_第3页
计算机图形学电子教案c3-1_第4页
计算机图形学电子教案c3-1_第5页
资源描述:

《计算机图形学电子教案c3-1》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第3章基本光栅图形生成技术显示器是由离散像素组成的矩阵,在绘制具有连续性质的直线、曲线或区域等基本图形时,需要确定最佳逼近它们的像素,这个过程称为光栅化。当光栅化按照扫描线的顺序进行时,它被称为扫描转换。对于一维图形,在不考虑线宽时,用一个像素宽的直、曲线来显示图形。二维图形的光栅化必须确定区域对应的像素集,并用指定的属性或图案显示之,即区域填充。光栅化和扫描转换是光栅图形学的基本问题,其算法的好坏对系统的效率有直接的关系。VC提供了一个显示像素函数:SetPixel(x,y,color);而在Turbo中显示像素函数为:putpixel(x,y,color);其中,x和y为像素的

2、位置坐标,color为像素的颜色。安徽师范大学数学计算机科学学院计算机图形学图形光栅化光栅化图形的处理本章的主要内容确定最佳逼近的象素集合及其颜色,进而在光栅图形显示器上显示一个图形的过程。1、区域填充。2、线宽和线型。3、字符。4、图形的裁剪。5、图形的反走样。对一个图形进行光栅化处理时所出现的走样现象进行处理。安徽师范大学数学计算机科学学院计算机图形学直线(段)的光栅化区域填充安徽师范大学数学计算机科学学院计算机图形学图案填充具有一定宽度的直线安徽师范大学数学计算机科学学院计算机图形学点阵字符点阵字库中的位图表示安徽师范大学数学计算机科学学院计算机图形学二维图形的裁剪安徽师范大

3、学数学计算机科学学院计算机图形学反走样前的直线段反走样后的效果安徽师范大学数学计算机科学学院计算机图形学直线的扫描转换:确定最佳逼近于该直线的一组象素,并且按扫描线顺序,对这些象素进行写操作。三个常用算法:数值微分法(DDA)中点画线法Bresenham算法3.2线的生成算法安徽师范大学数学计算机科学学院计算机图形学1数值微分(DDA)法DigitalDifferentialAnalyzer基本思想已知过端点的直线段L:直线斜率为从的左端点开始,向右端点前进。步长=1(个象素),计算相应的y坐标;取象素点(x,round(y))作为当前点的坐标(k≤1时)。安徽师范大学数学计算

4、机科学学院计算机图形学作为最底层的光栅图形算法,在通常的CAD/图形系统中,会被大量应用,因此,哪怕节约一个加法或减法,也是很了不起的改进。由此出发点,导致增量算法的思想。首先考虑k≤1的情形。这种方法非常直观、容易理解,但是效率较低。这是因为每步运算中都有一个浮点乘法与一个舍入运算。安徽师范大学数学计算机科学学院计算机图形学考虑到即:当x每递增1,y递增k(即直线斜率);例:画直线段xfloor(y+0.5)y000100.4210.8311.2421.6522.0注:网格点表示象素中心K=0.4voidDDALine(intx0,inty0,intx1,inty1,intc

5、olor)intx;floatdx,dy,y,k;dx=x1-x0,dy=y1-y0;k=dy/dx;for(x=x0,y=y0;xx1;x++)putpixel(x,floor(y+0.5),color);y=y+k;安徽师范大学数学计算机科学学院计算机图形学注意上述分析的算法仅适用于k≤1的情形。当k1时,会如何?(答案见下页)k>1示意图012345321Line:P0(0,0)--P1(2,5)54即:当y每递增1,x递增1/k.安徽师范大学数学计算机科学学院计算机图形学安徽师范大学数学计算机科学学院计算机图形学voidddaline(intx0,i

6、nty0,intx1,inty1,intcolor)intx;floatdx,dy,y,k;dx=x1-x0,dy=y1-y0;k=dy/dx,x=x0;for(y=y0;yy1;y++)putpixel(floor(x+0.5),y,color);x=x+1/k;voidddaline(intx0,inty0,intx1,inty1,intcolor){inti;floatdx,dy,length,x,y;if(fabs(x1-x0)>=fabs(y1-y0))length=fabs(x1-x0);elselength=fabs(y1-y0);dx=(x1-x0)/le

7、ngth;dy=(y1-y0)/length;i=1;x=x0;y=y0;while(i<=length){putpixel(floor(x+0.5),floor(y+0.5),color);x=x+dx;y=y+dy;i++;}}DDA算法与基本算法相比,减少了浮点乘法,提高了效率。但是x与dx、y与dy用浮点数表示,每一步要进行四舍五入后取整,不利于硬件实现,因而效率仍有待提高。Bresenham算法假设当前直线上的像素坐标为p(xi,yi),那么下一步需要在列x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。