上机实验4:自由曲线和曲面的绘制.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 34 - -图形学课程实验报告- Computer Graphics Report Of course experiment 计算机图形学课程实验 报 Computer Graphics Report Of course experiment 实验题目 自由曲线和曲面的绘制 班 级 计算081 姓 名 杨 恒 学 号 3080811017 指导教师 胡钢 日 期 2011.6.3 西安理工大学理学院应用数学系 二零一一年春季学期 实验4自由曲线和曲面的绘制 实验4 自由曲线和曲面的绘制 实验说明 实验目的:掌握自由曲线和曲面(包括Bezier曲线、曲面和B样条曲线、曲面)的生成算法思想,并能上机编程绘制相应的曲线、曲面和利用曲线、曲面进行简单的几何造型设计。 实验地点: 教九楼401 数学系机房 实验要求(Direction): 1.每个学生单独完成;2.开发语言为TurboC或C++,也可使用其它语言;3.请在自己的实验报告上写明姓名、学号、班级;4.每次交的实验报告内容包括:题目、试验目的和意义、程序制作步骤、主程序、运行结果图以及参考文件;5. 自己保留一份可执行程序,考试前统一检查和上交。 实验内容 ?实验题一 1.1实验题目 上机编写一个能绘制Bezier曲线和B样条曲线的通用程序,并调试成功。具体要求为:(1)用户在运行程序时,可以根据提示信息来决定选择绘制Bezier曲线,还是B样条曲线;(2)两种曲线控制顶点的个数和坐标值要求可以随机输入(即Bezier曲线和B样条曲线的次数和位置可以随机输入);(3)当用户输入控制点的坐标位置后,屏幕上生成曲线的同时显示其特征多边形;且在特征多边形的顶点处输出该顶点坐标;(4)要求在可执行程序后附上运行结果(两种曲线都至少附上一个结果图)。 1.2实验目的和意义 掌握Bezier曲线和B样条曲线的绘制方法。 1.3程序制作步骤(包括算法的基本思想、流程图、设计步骤等) 一、基本思想 (1)Bezier曲线:是由一组折线来定义的,且第一个点和最后一个点在曲线上,第一条和最后一条折线分别表示出曲线在起点和终点处的切线方向。Bezier曲线通常由(n+1)个顶点定义一个n次多项式,曲线上各点参数方程式是 P 其中,参数t的取值范围是[0,1],i是有序集0~n中的一个整数值,n是多项式次数,也是曲线次数,通常由n+1个顶点确定的曲线为n次曲线。 Pi是低i个顶点的坐标值(x或y),B B 其中 C (2)B样条曲线:B样条曲线段是由若干条曲线段光滑连接而成的。首先定义B样条曲线段。 设给定n+1个型值点,用Pi P 叫做B样条曲线段。与Bezier曲线类似,依次用线段连接Pi F B样条函数式中0≤t≤1,i=0,1,…,n。 二、设计步骤 Step1:选择Bezier或B样条曲线绘图; Step2:若选择用Bezier曲线绘图,输入控制顶点个数,依次输入控制顶点坐标Pi 若选择用B样条曲线绘图,输入B样条曲线段次数,输入控制顶点个数,依次输入控制顶点坐标Pi Step3:则将t [0,1]区间剖分成m等分,对于每一个ti,i=0,1,…,m,根据式(1)或(2)都可以计算出一个P(ti),计算所有的P(ti)。 Step4:依次连接每个P(ti),就得到Bezier或B样条曲线。 三、流程图 N N Y 输入Bezier顶点个数n和顶点坐标p 开始 结束 输入choice Choice==0 输入B样条曲线段次数,输入顶点个数n和顶点坐标p 求ti 求P(ti) 依次连接每个P(ti) 画出控制多边形 标出各点坐标 图 1.1 1.4主程序 #includeiostream #includecmath #includegraphics.h using namespace std; #define pi 3.1415926 /************** 二维 点类 **********************/ class Point { public: double x; double y; Point(int x=0,int y=0) //构造函数 { this-x = x; this-y = y; }; void operator=(Point a) //重载=运算符 { x=a.x; y=a.y; }; Point operator*(double a) //重载*运算符 { return

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档