计算机图形学-第二章基本图形生成和计算
第二章 基本图形的生成与计算;教学时数:8学时(含实验2学时)教学目的与要求:要求学生全面了解基本图形生成的各种算法,理解掌握直线、圆、椭圆生成的基本算法以及线划图元的属性控制方法,能通过编程实现各种算法。教学重点:直线、圆、椭圆生成的基本算法以及线划图元的属性控制方法,实验教学难点:直线、圆、椭圆生成的基本算法;本章主要阅读文献资料:1、刘大有主编: 《计算机图形学》(第1版),机械工业出版社,2003年8月版。2、陈传波,陆枫编著: 《计算机图形学基础》(第1版),电子工业出版社,2002年3月版。3、孙家广等:《计算机图形学》(新版),清华大学出版社,1999年。;图形的扫描转换;图形的扫描转换;所以扫描转换的主要工作是确定最佳逼近于图形的像素集。对一维图形,不考虑线宽,则用一个像素宽的直线来显示图形。二维图形的光栅化,即区域的填充:确定区域所对应的像素集,并用所要求的颜色或图案显示。任何图形的光栅化,必须显示在一个窗口内,否则不予显示。即确定一个图形的哪些部分在窗口内,哪些在窗口外,即裁剪。裁剪通常在扫描转换之前进行。;2-1 直线的扫描转换;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换一、数值微分法;2-1 直线的扫描转换二、中点画线法;2-1 直线的扫描转换二、中点画线法;假设直线的起点和终点分别为(x0,y0)和(x1,y1),则方程为:ax+by+c=0其中a=y0-y1, b=x1-x0, c=x0y1-x1y0由常识知:
∴欲判断M点是在Q点上方还是在Q点下方,只需把M代入F(x,y),并检查它的符号。;2-1 直线的扫描转换二、中点画线法;2-1 直线的扫描转换二、中点画线法;2-1 直线的扫描转换二、中点画线法;2-1 直线的扫描转换二、中点画线法;2-1 直线的扫描转换三、 Bresenham画线算法;2-1 直线的扫描转换三、 Bresenham画线算法;2-1 直线的扫描转换三、 Bresenham画线算法;2-1 直线的扫描转换三、 Bresenham画线算法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-中点算法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-中点算法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-中点算法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-中点算法;中点画圆的算法步骤:输入圆的半径R。计算初始值d=1-R,x=0,y=R。绘制点(x,y)及其在八分圆中的另外7个对称点。判断d的符号。若d<0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y);否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。当x≤y时,重复(3)和(4),否则结束。;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-中点算法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;初始定向确定 的符号;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;2-2 圆与椭圆的扫描转换一、圆弧的扫描转换-正负法;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换-中点画法;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换-中点画法;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换-中点画法;2-2 圆与椭圆的扫描转换二、椭圆的扫描转换-中点画法;2-3 线画图元的属性控制;2-3 线画图元的属性控制;2-3 线画图元的属性控制;2-3 线画图元的属性控制;2-3 线画图元的属性控制;二、线型控制在实际应用中,除了使用单像素宽的线条,还经常使用指定线型和线宽的直线与弧线。线型:实线、虚线、短划线和点划线
;2-3 线画图元的属性控制;本章小结;圆弧的扫描转换中点算法: d=F(M)=F(Xp+1,Yp-0.5)=(Xp+1)2+(Yp-0.5)2-R2正负法:椭圆的扫描转换中点算法线元属性的控制线宽控制像素复制方法移动刷子法填充法线型控制;