实验1
实验名称:反走样直线段绘制的程序设计
实验软件:VC++6.0
实验目的:使用Wu反走样算法绘制金钢石图形,在一个界面上同时绘制两个金钢石图形,一个用正常直线,另一个用反走样直线,等分点个数至少20个。Wu反走样原理是各个方向的反走样直线:像素点离理想直线段越近,其亮度值越小,像素越暗;像素点离理想直线段越远,其亮度值就越大,像素越亮。
实验分析:对比两个图形的效果,分析优点和缺点,并说明原因。
实验结果参见:走样对比图
老师的样例程序参见:test1
实验2
实验名称:多边形填充的程序设计
实验软件:VC++6.0
实验目的:使用鼠标+键盘绘制一个带孔的多边形,然后进行填充。
实验分析:如何表达一个多边形?如何用鼠标键盘绘制一个带孔的多边形,多边形如何填充。
样例程序参见:fillpoly,GlyphTest(汉字轮廓)
老师的样例程序参见:test2
MFC添加消息处理:
鼠标指向view类,选择右键弹出菜单:Add Windows Message Handler WM_LBUTTONDOWN WM_RBUTTONDOWN WM_CHAR Invalidate(true);//重绘窗口
实验3
实验名称:多边形二维变换程序设计
实验软件:VC++6.0
实验目的:参见案例11,将案例11中的四边形改成其他形体。使用包围四边形对多边形进行缩放和旋转,参见Word中的相关功能。
实验分析:如何生成和绘制包围多边形,如何进行鼠标控制。补充练习:如何让鼠标命中多边形,然后拖动它?PtInRegion,CreatePolygonRgn
样例程序参见:案例11-二维图形几何变换算法
算法参见:test3.md
实验4
实验名称:三维形体的表示
实验软件:VC++6.0
实验目的:参见9.4正八面体,9.5凸多面体,9.6立方体画家算法,参见教材Page264-266,构造并显示一个正十二面体的三维形体,显示线框图和填充图。
实验分析:如何通过算法生成点表,边表,和面表,如何使用法失量消隐不可见的面。
样例程序参见:参见教程的样例程序:9.4正八面体,9.5凸多面体,9.6立方体画家算法
实验5
实验名称:三维形体的真实感表示
实验软件:VC++6.0
实验目的:参见10.6圆环光照,Gouraud明暗处理模型,Z-Buffer算法,构造并显示一个汉字“人”的三维立体字的真实感图像。
实验分析:如何通过算法生成点表,边表,和面表,如何使用法失量消隐不可见的面,如何使用Gouraud颜色模型。
样例程序参见:参见参见10.6圆环光照,参见test4
test5.png
Gouraud明暗处理模型
使用GetGlyphOutline取得TrueType字体的轮廓数据