郑州大学计算机图形学课程设计

上传人:第*** 文档编号:57028311 上传时间:2018-10-18 格式:DOCX 页数:38 大小:359.73KB
返回 下载 相关 举报
郑州大学计算机图形学课程设计_第1页
第1页 / 共38页
郑州大学计算机图形学课程设计_第2页
第2页 / 共38页
郑州大学计算机图形学课程设计_第3页
第3页 / 共38页
郑州大学计算机图形学课程设计_第4页
第4页 / 共38页
郑州大学计算机图形学课程设计_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《郑州大学计算机图形学课程设计》由会员分享,可在线阅读,更多相关《郑州大学计算机图形学课程设计(38页珍藏版)》请在金锄头文库上搜索。

1、1计算机图形学课程设计计算机图形学课程设计学院: 水利与环境学院 专业: 地理信息系统 学号: 姓名: 指导老师: 2015/12/112目录课程设计的目的3 一、基本图元的绘制 3 1.1 数值微分法画直线 3 1.2MFC 线型.4 1.3 直线造型.5 1.4 中点画圆法.7 二、曲线的绘制8 2.1 正弦曲线.8 2.2 极坐标曲线.10 2.3 参数样条.11 2.4 贝齐曲线 114 2.5 贝齐曲线 2.15 三、区域填充16 3.1 填色.16 3.2 图案填充.18 四、图形变换19 4.1 放大.19 4.2 平移.20 4.3 旋转.22 4.4 小车.23 五、空间图形

2、24 5.1 螺旋线.24 5.2线框图25 5.3透视投影 26 5.4 表面模型与消隐 .29 5.5 二次曲面.31 六、光照效果33 6.1 百叶窗.33 6.2 球体.34 七、DEM353课程设计的目的计算机图形学绘制的图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线 宽等非几何属性组成。从构成要素上看,图形主要分为两类,一类是几何要素在构图中具 有突出作用的图形,如工程图、等高线地图、曲面的线框图等,另一类非几何要素在构图 中具有突出作用的图形,如明暗图、晕渲图、真实感图形等。通过课程设计,是自己了解 计算机图形学的有关原理,算法。掌握基本图形显示程序设计方法,会调用 M

3、FC 封装的绘 图函数,会使用 DDA、中点法和 Bresenham 算法绘制各种图元,达到像素级操作。能够学 会二维和三维图形变换的原理,学会画三维框架图和几种常用的投影。在此基础上学会消 隐及表面建模。掌握绘制真实感图形的主要技术,学习和掌握局部光照模型,为进一步学 习计算机辅助设计方面的技术知识打下基础。一、基本图元的绘制1.1 数值微分法画直线1.直线的基本微分方程为:,设直线通过点和,则直线方程可表示为:,如果已知第 点的坐标,可用步长和得到第点的坐标为:,或将算得的直线上每个点的当前坐标,按四舍五入得到光栅点的位置。2代码展示:3运行结果:4图 1-1 数值微分法画直线1.2MFC

4、 线型1、VC+中的画笔是用来绘制直线、曲线或图形的边界线,是绘图工具类之一。画笔 通常具有线型、宽度和颜色这 3 中属性。画笔的线型通常有实线、虚线、点线、点画线、 双点划线、不可见线和内框架线 7 种,这些线型都是以“PS_”为前缀的预定义标识符。画 笔的宽度用于确定所画的线条的宽度,是用设备坐标像素表示的。画笔的颜色确定了所画 线条的颜色。 默认的画笔是一个像素单位的黑色实线。要想更换新画笔,可以在创建画笔对象后,将其 选入设备上下文,就可使用新画笔进行绘图。 2、代码展示: void display:MFCxianxing(CDC *pDC) /调用 mfc 线形,记得修改参数和变量名

5、。void drawtape:MFC(CDC *pDC) const int nLeft=30; CPen LinePen; CPen *OldPen; int nsize8=1,1,1,1,1,10,20,30; long PenStyle8=PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_SOLID,PS_SOLID,P S_SOLID; CString PenStyleName8=“SOLID“,“DASH“,“DOT“,“DASHDOT“,“DASHDOTDOT“,“Width=10“,“Width=20“,“ Width=30“

6、; for(int i=0;iTextOut(nLeft,(i+1)*30,PenStyleNamei); /绘制提示文本 LinePen.CreatePen(PenStylei,nsizei,RGB(255,0,0); /建立 CPen 对象 if(i=0)OldPen=pDC-SelectObject( /记录原画笔 else pDC-SelectObject(5pDC-MoveTo(140,(i+1)*30+10);pDC-LineTo(340,(i+1)*30+10); /画线 LinePen.DeleteObject(); /释放 CPen 类对象所占的存储空间 pDC-Select

7、Object(OldPen); 3、运行结果:图 1-2 MFC 线型1.3 直线造型1、课程设计中的直线造型即为“金刚石”的绘制。通过两个 for 循环语句与直线绘制函数的巧妙结合即可绘制出如图 1-3 的效果。2、 代码展示:void display:MFCxianxing(CDC *pDC) /调用 mfc 线形,记得修改参数和变量名。void drawtape:MFC(CDC *pDC) const int nLeft=30; CPen LinePen; CPen *OldPen; int nsize8=1,1,1,1,1,10,20,30; long PenStyle8=PS_SOL

8、ID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_SOLI D,PS_SOLID,PS_SOLID; CString PenStyleName8=“SOLID“,“DASH“,“DOT“,“DASHDOT“,“DASHDOTDOT“,“Width=160“,“Width=20“,“Width=30“; for(int i=0;iTextOut(nLeft,(i+1)*30,PenStyleNamei); /绘制提 示文本 LinePen.CreatePen(PenStylei,nsizei,RGB(255,0,0); /建 立 CPen 对象 if(i

9、=0) OldPen=pDC-SelectObject( /记录原画笔 else pDC-SelectObject( pDC-MoveTo(140,(i+1)*30+10); pDC-LineTo(340,(i+1)*30+10); /画线 LinePen.DeleteObject(); /释放 CPen 类对象所占的存储空间 pDC-SelectObject(OldPen); 3、运行结果:图 1-3 直线造型71.41.4 中点画圆法中点画圆法1、根据圆的对称性只要画出圆上的 1/8 圆弧 AB,根据圆的对称性画出整个圆仍考虑圆心在原点,半径为的第一个 8 分圆。在弧 AB 上设当前点像素

10、为 P(Xp,Yp),按顺时针方向生成圆弧时,为了最佳逼近圆弧,下一个像素只能是正右方的 P1,或右下方的 P2 两者之一。为判别 P1 或 P2,构造函数 F(X,Y)=X2+Y2-R2。 对于圆上的点,F(X,Y)=0;对于圆外的点 F(X,Y)0;而对于圆内的点,F(X,Y)0 时,P2 离圆弧更近,应取 P2,当 F(M)=0 时,在 P1 与 P2 之中随便取一个即可,我们约定取 P2,即 F(M)SetPixel(x,y,color); while(xSetPixel(x+x0,y+y0,color); pDC-SetPixel(-x+x0,y+y0,color); pDC-Set

11、Pixel(-x+x0,-y+y0,color); pDC-SetPixel(x+x0,-y+y0,color); pDC-SetPixel(y+x0,x+y0,color);pDC-SetPixel(-y+x0,x+y0,color); pDC-SetPixel(-y+x0,-x+y0,color); pDC-SetPixel(y+x0,-x+y0,color); 3、运行结果:图 1-4 中点画圆二、曲线的绘制二、曲线的绘制2.1 正弦曲线1、正/余弦曲线:即通过正余弦曲线函数找到曲线上适当数量的点,采用以直代曲的方法,最终连点成线。2、部分代码展示:9void display:Sin(C

12、DC *pDC)/正玄函数 int scale=50; float px64,py64; float x,y; CPoint point64; for(int i=0;iMoveTo(300,250); pDC-LineTo(pointi); 3、运行结果: 10图 2-1 正弦曲线2.22.2 极坐标曲线极坐标曲线1、极坐标曲线:此图由于根据极坐标找点,涉及到将极坐标的点转化“xoy”坐标系中。相关转换如下: ) t (rsin ) tcos(ryx2、代码展示: void display:JiZuoBiao(CDC *pDC,COLORREF color)/极坐标曲线 int x,y; f

13、loat t,PI=3.141592653,r; for(float i=0;iSetPixel(x,y,color); 3、运行结果:11图 2-2 极坐标曲线2.32.3 参数样条参数样条1、三次样条曲线:由于“以直代曲法”的局限性,在进行相关应用时切需要一种能更精确的描绘通过任意离散点的曲线的绘图方法,三次样条就是其中插值法的典型代表,其具体画法如下:1)1) 给定点 P1,P2,P3Pn; ;2) (i=1,2,3n-1)2 12 1i)()(TiiiiYYXX, (i=2,3,4n-1) )/(1iiiiTTTaiiac11a1n c(i=2,3,4n-1)111/ )(*3/ )(

14、*3iiiiiiiiTppaTppd1121/ )(*3dTpp 11n/ )(*3dnnnTpp3) (i=1,2,3n-1)2L1iiLc /UiiiiUab*L111i(追过程追过程) (i=2,3,4n)111/dLLiiiiLqad/ )*(q1i4)(赶过程赶过程) (i=n-1,n-2,1)nqpn iiiiLqU/ )*q(p1i可求出 3 2 1,pnppp125)求其系数: ipiA iBipiiiiiiTppTpp/ )*2(/ )(*3C 12 1iiiiiiTppTpp/ )(/ )(*2-D 13 i1i6)6)代人方程: 32 i(T)*PTDTCTBAiiii求

15、出方程后,再由“以直代曲法”绘制相应的曲线,如图三次样条曲线。 2、代码展示:void display:Spline(CDC *pDC)/参数样条 DPoint p12; p1.x=10; p1.y=3; p2.x=4; p2.y=2; p3.x=5; p3.y=0; p4.x=4; p4.y=-2; p5.x=3; p5.y=-3; p6.x=2; p6.y=-2; p7.x=1.50; p7.y=0; p8.x=1; p8.y=2; p9.x=0; p9.y=3; p10.x=-2; p10.y=1; p11.x=-7; p11.y=3; float u11,t11, a12,b12,c12,l12,s;/对应矩阵中的 a,l,c,u.t 为弦长 DPoint A12,B12,C12,D12,d1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号