文档介绍:西北农林科技大学实验报告
学院名称:理学院专业年级:信计111班
姓名:余伟学号:2011014816
课程:计算机图形学基础报告日期:2013年12月7日
实验二椭圆的扫描转换算法
1实验目的
了解和掌握中点算法和Bresenham算法。
2实验内容
1)中点Bresenhan画椭圆算法。
2)编写源程序,在计算机上编译运行,画出正确的图形和输出交点坐标。
3实验步骤
1)对直线、圆弧的几何形状及相对位置进行分析,选定比较合适的算法模型。
2)画出程序流程图;
3)编写程序的源程序;
4)编辑源程序并进行调试;
5)进行特殊模式的运行测试,并结合情况进行调整。
6)打印源程序或把源程序以文件的形式提交。
4 实验内容
1)中点Bresenhan画椭圆算法。
2)编写源程序,在计算机上编译运行,画出正确的图形和输出交点坐标。
对直线、圆弧的几何形状及相对位置进行分析,选定比较合适的算法模型。
画中点Bresenham算法的基本步骤:
(1)输入椭圆的长半轴a和短半轴b;
(2)计算初始值
(3)绘制点(x,y)及其在四分象限上的另外三个对称点.
(4)判断d的符号。若d<=0,则现将d更新为再将(x,y)更新为(x+1,y);否则先将d更新为再将(x,y)更新为(x+1,y-1).
(5)当重复步骤(3)、(4),否则转到步骤(6).
(6)用上半部分计算的最后点来计算下半部分中d的初值:
(7)绘制点(x,y)及其在四分象限上的另外三个对称点.
(8)判断d的符号。若d<=0,则将d更新为再将(x,y)更新为(x+1,y-1);否者先将d更新为再将(x,y)更新为(x,y-1).
(9)当y>=0时,重复步骤(7)和(8),否者结束.
2)画出程序流程图;
中点Bresenham画椭圆流程图:
是
否
是
d更新为d+b^2(2x+3),
(x,y)->(x+1,y)
d<=0?
d更新为d+b^2(2x+3)
+a^2(-2y+2),(x,y)->(x+1,y-1)
B^2(x+1)<a^2(y-)?
计算d的初值,x=0,y=b.
绘制(x,y)及其三个对称点
输入a,b
是
否
用上半部分计算的最后点(x,y)计算d
的初值:d=b^2(x+)^2+a^2(y-1)^2-a^2*b^2.
绘制(x,y)及其三个对称点
d<=0?
d更新为d+b^2(2xi+2)+
a^2(-2yi+3),(x,y)->(x+1,y-1)
d更新为d+a^2(-2yi+3),(x,y)->(x,y-1)
y>=0?
结束
图一中点Bresenham画椭圆流程图
a=40 ,b=50
function MBresenhamcirle111(a,b)
x=0;
y=b;
dl=b*b+a*a*(-b+);
plot([x],[y],'*');
hold on
plot([-x],[-y],'*');
hold on
plot([-x],[y],'*');
hold on
plot([x],[-y],'*');
hold on
while b*b*(x+1)<a*a*