- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机图形学--画图板报告3
课程名称计算机图形学实验名称画图板设计这个画图板,所需要的软件环境是Microsoft studio visual C++ 6.0 MFC,硬件是计算机,绘制直线,消隐,填充等,首先要考虑它们所需要的头文件,所需的类库以及它们各自的调用函数,以及其成员函数,成员变量。设计各部分所要做的处理有如下几点1)为消隐设计用向量法来消除隐藏线:a.在类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();b.并在MFC Classwizard添加视图类CMYView的消隐映射WM_KEYDOWN,映射函数如下void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);c.在CMYView.cpp中设计程序结构代码。①添加头文件以及定义常量PI#include math.h#define PI 3.1415926②变量初始化COutNormalView::COutNormalView(){ alpha1 =60;//绕Z轴旋转的角度beta1 = 30;//绕X轴旋转的角度}③设计画投影面的函数void COutNormalView::DrawFace(CDC *pDC, int nIndex)④设计消隐立方体函数void COutNormalView::DrawHidedCube()为了从不同角度观察立方体,设计在按键消息映射函数void COutNormalView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 中添加代码。2)在CMYView.cpp中设计程序结构代码。设计矩形,正方形,圆的大小,调用函数CClientDC dc(this);dc.Rectangle(380,350,350,380)//正方形dc.Ellipse(260,210,210,260);//圆dc.Rectangle(250,300,350,250);//矩形设计三角形,多边形的大小,调用函数CClientDC 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;c.Polygon(p,3);//三角形CClientDC 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;dc.Polygon(p,5);设计填充颜色及范围,设计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_castint(j),i,RGB(168,255,55)); p=p-next-next;//考虑端点情况}//配对填充颜色设计Bezier曲线,在Bezier()中调用CClientDC 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;dc.PolyBezier(p,4);设计椭圆,在椭圆Ellipse() 中调用CClientDC dc(this);并设值的大小dc.Ellipse(300,100,350,250);设计直线,编辑直线函数void Dda(int
文档评论(0)