计算机图形学课程设计实验报告
计算机图形学课程设计实验报告
SHANDONG. UNIVERsrrr OF SCIENCE ^ND TECHNOLOGY
《计算机图形学》
实验报告
班级计算机科学与技术
姓名
学号
实验一基本图形生成算法
一、实验目的:
1、掌握中点Bresenham 绘制直线的原理;
2、设计中点Bresenham 算法;
3、掌握八分法中点Bresenham 算法绘制圆的原理;
4、设计八分法绘制圆的中点Bresenham 算法;
5 、掌握绘制1/4 椭圆弧的上半部分和下半部分的中点Bresenham 算法原理;
6、掌握下半部分椭圆偏差判别式的初始值计算方法;
7、设计顺时针四分法绘制椭圆的中点Bresenham 算法。
二、实验过程:
1、实验描述
实验1:使用中点Bresenham 算法绘制斜率为0<=k<=1 的直线。
实验2:使用中点Bresenham 算法绘制圆心位于屏幕客户区中心的圆。
实验3:使用中点Bresenham 算法绘制圆心位于屏幕客户区中心的椭圆。2、实验过程
1)用MFC(exe建立一个单文档工程;
2)编写对话框,生成相应对象,设置相应变量;
3)在类CLineView 中声明相应函数,并在相关的cpp 文件中实
现;
4) 在OnDraw ()函数里调用函数实现绘制直线、圆、椭圆;
5) 运行程序,输入相应值,绘制出图形。
三、源代码
实验1:直线中点Bresenham 算法
1.// cline.cpp : implementation file
// cline dialog cline::cline(CWnd* pParent /*=NULL*/)
: CDialog(cline::IDD, pParent)
{
//{{AFX_DATA_INIT(cline) m_x0 = 0;
m_y0 = 0;
m_x1 = 0;
m_y1 = 0; //}}AFX_DATA_INIT
}
void cline::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(cline)
DDX_Text(pDX, IDC_x0, m_x0); DDX_Text(pDX, IDC_y0, m_y0);
DDX_Text(pDX, IDC_x1, m_x1); DDX_Text(pDX, IDC_y1, m_y1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(cline, CDialog)
//{{AFX_MSG_MAP(cline) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
2、// LineView.h
class CLineView : public CView
{
public:
CLineDoc* GetDocument();