- 11
- 0
- 约6.06千字
- 约 8页
- 2017-03-04 发布于湖北
- 举报
实验二 基本图形的生成技术
A.直线生成算法
一、实验目的
在一个图形系统中,基本图形(也称为图元、图素等)的生成技术是最基本的,任何复杂的图形都是由基本图形组成的,基本图形生成的质量直接影响该图形系统绘图的质量。所以,需要设计出精确的基本图形生成算法,以确保图形系统绘图的精确性。本次实验的目的就是验证直线生成的三种扫描算法,并要求对基本算法进行扩充和改进,包括:利用Visual C++实现直线生成算法,验证算法的正确性;
二、基本知识和实验步骤
任务一:实现三种画线程序
DDA算法分析
假设 直线的起点坐标为P1 (x1,y1),终点坐标为P2 (x2,y2), x方向的增量为 △x=x2-x1 ;y方向上增量为 △y=y2-y1,直线的斜率为 k=△y/△x
当 △x>△y 时,让 x 从 x1 到 x2 变化,每步递增 1,那么,x 的变化可以表示为 xi+1=xi+1,y 的变化可以表示为 yi+1=yi+k
用上式可求得图中直线 P1P2 和 y 向
网格线的交点,但显示时要用舍入找到最
靠近交点处的象素点耒表示。当 △x△y 时,
让 y 递增 1,x作相应变化。
综合考虑,按照从(x1, y1)到(x2, y2)方向不同,分8个象限。对于方向在第1a象限内的直线而言,取增量值Dx=1,Dy=m。对于方向在第1b象限内的直线而言,取增量值Dy
原创力文档

文档评论(0)