计算机图形学实验二报告(共11页).doc
《计算机图形学实验二报告(共11页).doc》由会员分享,可在线阅读,更多相关《计算机图形学实验二报告(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上计算机科学与通信工程学院实验报告课程计算机图形学实验题目曲线拟合学生姓名学号专业班级指导教师日期专心-专注-专业成绩评定表评价内容具体内容权重得分方案论证与综合分析的正确、论证分析20%合理性算法设计算法描述的正确性与可读性20%编码实现源代码正确性与可读性30%程序书写标识符定义规范,程序书写风20%规范格规范报告质量报告清晰,提交准时10%总分指导教师签名曲线拟合1. 实验内容1. 绘制三次 Bezier曲线(1)给定四个已知点 P1P4,以此作为控制顶点绘制一段三次 Bezier曲线。(2)给定四个已知点 P1P4,以此作为曲线上的点绘制一段三次 Bezier曲
2、线。2. 绘制三次 B 样条曲线给定六个已知点 P1P6,以此作为控制顶点绘制一条三次 B 样条曲线。2.实验环境软硬件运行环境:Windows XP开发工具:visual studio 20083.问题分析1.绘制三次 Bezier 曲线Bezier 曲线是用 N+1 个顶点(控制点)所构成的N 根折线来 定义一根 N 阶曲线。本次实验中的三次 Bezier 曲线有 4 个顶点,设它们分别为 P0, P1,P2,P3,那么对于曲线上各个点 Pi(x,y)满足下列关系:P(t)=(-P0+3P1-3P2+3P3)t3+(3P0-6P1+3P2)t2+(-3P0+3P2)t+(P0+4P1+P2
3、)/6X(t)=(-X0+3X1-3X2+3X3)t3+(3X0-6X1+3X2)t2+(-3X0+3X2)t+(X0+4X1+X2)/6Y(t)=(-Y0+3Y1-3Y2+3Y3)t3+(3Y0-6Y1+3Y2)t2+(-3Y0+3Y2)t+(Y0+4Y1+Y2)/6其中 P0、P1、P2、P3 为四个已知的点,坐标分别为(X0 、 Y0) 、(X1 、Y1) 、(X1 、Y2) 、(X3 、Y3) 。所以只要确定控制点的坐标,该曲线可通过编程即可绘制出来。2. 绘制三次B 样条曲线三次B 样条函数绘制曲线的光滑连接条件为:对于6 个顶点,取P1、P2、P3、P44 个顶点绘制在第一段三次样
4、条曲线,再取P2、P3、P4、P5这 4个顶点绘制在第二段三次样条曲线,总计可绘制3 段光滑连接的三次样条曲线。4. 算法设计程序框架/DiamondView.hclass CDiamondView : public CView public:/参数输入和提示对话框CDlgBezier dlgBezier;/Bezier曲线绘制中的参数输入对话框CDlgB dlgB;/B 样条曲线绘制中的参数输入对话框/绘图函数,需要实现void DrawBezier1(POINT p4);/已知点作为控制点绘制 Bezier曲线void DrawBezier2(POINT p4);/已知点作为曲线上的点绘制
5、 Bezier曲线 void DrawBCurve(POINT p6);/绘制 B 样条曲线/DiamondView.cppvoid CDiamondView:OnMenuDiamond()IsCutting = FALSE;if(dlgDiamond.DoModal()=IDOK)DrawDiamond(dlgDiamond.m_nVertex,dlgDiamond.m_nRadius,100);/调用绘制金刚石的函数 void CDiamondView:OnMenuBezier1() IsCutting = FALSE;if(dlgBezier.DoModal() = IDOK)DrawB
6、ezier1(dlgBezier.m_nPoint);/调用已知点作为控制点绘制 Bezier 曲线的函数 /以已知的四个点为控制点绘制 Bezier曲线/p:已知的四个控制点void CDiamondView:DrawBezier1(POINT p4) void CDiamondView:OnMenuBezier2()IsCutting = FALSE;if(dlgBezier.DoModal() = IDOK)DrawBezier2(dlgBezier.m_nPoint);/调用已知点作为曲线上的点绘制 Bezier 曲线的函数 /以已知的四个点为 Bezier 曲线上的点来绘制 Bezi
7、er 曲线/p:已知的四个点void CDiamondView:DrawBezier2(POINT p4) void CDiamondView:OnMenuB()IsCutting = FALSE;if(dlgB.DoModal() = IDOK)DrawBCurve(dlgB.m_nPoint);/调用绘制 B 样条曲线的函数 /以已知的六个点为控制点来绘制 B 样条曲线/p:已知的六个控制点void CDiamondView:DrawBCurve(POINT p6) 5. 源代码/以已知的四个点为控制点绘制 Bezier 曲线/p:已知的四个控制点void CDiamondView:Dra
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 实验 报告 11
限制150内