课 程 实 验 报 告
课程名称: 计 算 机 图 形 学
专业班级: 学 号: 姓 名: 指导教师: 报告日期: 2015-11-11
计算机科学与技术学院
0
实验一:分形图形绘制
一、 实验目的(标题四号黑体)
(1)理解OpenGL 中glut 程序框架; (2)掌握二维基本图形绘制算法;
(3)利用二维基本图形绘制算法,扩展对其他复杂图形的绘制理解。
二、实验内容
1、实验算法
(a) 中点Bresenham算法画线
a) 输入直线的两个端点:端点
、端点
。必要时交换A、
B两点的坐标,使A点不在B点的右边。 令
,
,
,
b) 讨论直线的斜率的大小及正负,分四种情况分别逐点画线: i.
当
最大位移方向为x轴。构建判别公式:
其中,初值当当ii.
当
时,时,
,。
。
。
最大位移方向为x轴。构建判别公式:
其中,初值当当
。 ,。
1
时,时,
。
iii. 当
最大位移方向为x轴。构建判别公式:
其中,初值当当iv.
当
时,时,
,。
。
。
最大位移方向为x轴。构建判别公式:
其中,初值当当
时,时,
,。
。
。
c) 当直线没有画完时重复b)步骤 (b) 绘制分形三角形
a) 输入三角形的三个端点:端点
、递归层数n。
b) 连接A、B、C三点。 c) 当
时,连接输入三角形三边的中点,将分割得到的四个三角形
作为输入参数,递归调用本步骤。
、端点
、端点
中包含顶点的三个、
2、源程序
#include
#define ROUND(a) ((int )(a+0.5)) //求某个数的四舍五入值 using namespace std;
//全局变量声明:三角形三顶点及递归层数
GLint Global_xa, Global_ya, Global_xb, Global_yb, Global_xc, Global_yc;
2