文档介绍:课程名称计算机图形学实验名称画图板设计这个画图板,所需要的软件环境是 Microsoft studio visual C++ MFC , 硬件是计算机,绘制直线,消隐,填充等,首先要考虑它们所需要的头文件,所需的类库以及它们各自的调用函数,以及其成员函数,成员变量。设计各部分所要做的处理有如下几点 1)为消隐设计用向量法来消除隐藏线: CMYView 中添加公有成员变量和成员函数如下: double Pt[9][3];// 存储立方体的 8个顶点坐标, Pt[0][3] 保留不用,为了和面号相对应 int Face[7][4]; //存储立方体的 6个面对应的顶点,Face[0][4] 保留不用,为了和顶点号相对应 double tmpPt[9][3]; //存储投影变换之后的坐标值 int alpha1,beta1;// 定义绕 Z轴旋转 alpha 角,绕 X轴旋转 beta 角 void DrawFace(CDC *pDC, int nIndex); void DrawHidedCube(); MFC Classwizard 添加视图类 CMYView 的消隐映射 WM_KEYDOWN ,映射函数如下 void OnKeyDown(UINT nChar, UINT t, UINT nFlags); 中设计程序结构代码。①添加头文件以及定义常量 PI #include "" #define PI ②变量初始化 COutNormalView::COutNormalView() { alpha1 =60;// 绕Z轴旋转的角度 beta1 = 30;// 绕X轴旋转的角度} ③设计画投影面的函数 void COutNormalView::DrawFace(CDC *pDC, int nIndex) ④设计消隐立方体函数 void COutNormalView::DrawHidedCube() ○ 5 为了从不同角度观察立方体,设计在按键消息映射函数 void COutNormalView::OnKeyDown(UINT nChar, UINT t, UINT nFlags) 中添加代码。 2)在 中设计程序结构代码。○ 1 设计矩形,正方形,圆的大小,lientDC dc(this); (380,350,350,380)// 正 方形 (260,210,210,260);// 圆 (250,300,350,250);// 矩形○ 2 设计三角形,多边形的大小,lientDC dc(this); POINT p[3]; p[0].x =20;p[0].y =70; p[1].x = 170;p[1].y = 120; p[2].x = 270;p[2].y = 220; (p,3);// lientDC dc(this); POINT p[5]; p[0].x =400;p[0].y =300; p[1].x =430;p[1].y = 430; p[2].x =400;p[2].y = 480; p[3].x =380;p[3].y = 500; p[4].x =300;p[4].y =350; (p,5); ○ 3 设计填充颜色及范围,设计 Tianchong() CDC *pDC=GetDC();// 指针的调用 const int POINTNUM=5; typedef struct XET{}// struct point{} polypoint[POINTNUM]={20,30,50,40,60,70,100,80}; p=pAET->next; while(p && p->next) { for(float j=p->x;j<=p->next->x;j++) pDC->SetPixel(static_cast<int>(j),i,RGB(168,255,55)); p=p->next->next;// 考虑端点情况}// 配对填充颜色○ 4 设计 Bezier 曲线,在 Bezier() lientDC dc(this); 并设置值的大小 POINT p[4]; p[0].x = 50;p[0].y = 150; p[1].x = 100;p[1].y = 200; p[2].x = 300;p[2].y = 250; p[3].x = 200;p[3].y = 350; (p,4); ○ 5 设计椭圆,在椭圆 Ellipse() lientDC dc(this); 并设