版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湘 潭 大 学 实 验 报 告课程名称 计算机图形学 实验名称 参数三次样条的绘制 页数 专业 计算机科学与技术 班级 一班 同组者姓名 学号 2012551208 姓名 刘兆臣 实验日期 2015.05.05 一、 实验目的使学生掌握三次参数样条的定义、画法和程序的编写。二、 实验内容和要求给定型值点,要求用vc+6.0画出通过给定型值点的参数三次样条曲线。三、 实验方案设计给定型值点,计算出参数三次样条曲线的每个区间段的代数式,由hermit曲线定义画出每个区间的曲线。开 始 给定型值点 计算出参数 if n = 1? y n给系数矩阵赋值 if n = 2? y 给定系数值 n 求解方程
2、组,计算出各点导数 if i < n? i = 0 y计算第i段的二次项,三次项系数结 束 t = 0 if t <tti-1?ny t = t+es计算出第i段中各点的x,y值连线段 i +四、 程序运行和实验结果说明和分析。使用vc+6.0运行程序后得到如下图形图为四段曲线组成的三次参数样条曲线,其中各段的绘制是通过给定了型值点的相关参数计算出型值点的导数,再由hermit曲线知识,在各段上以直代曲绘制出每段的图形。基本达到了实验目的,完成实验要求。五、 性能、扩展性等方面存在的不足和可能的改进之处。不足:在源代码中的n个点采用了数据初始化的方法给出且给定了型值点的个数。由于给
3、定型值点较少,三次参数样条曲线看起来不够明显。可改进:可将初始化的型值点数据去除,采用手动键盘输入或文件输入的方法导入多个型值点数据。附件一 源程序,执行程序,符号列表文件。#include <graphics.h>#include<math.h>#include<conio.h>main( )int gdriver=detect,gmode;float x100,y100,a100,b100,c100;float px100,py100,qx100,qy100,tt100;float dx100,dy100;int i,n=4,t,es=3;float b
4、x3,bx4=0.0,by3=0.0,by4,cx,cy;initgraph(&gdriver,&gmode," ");for(i=0;i<n;i+) ai=0.0; bi=0.0; ci=0.0; pxi=0.0; pyi=0.0; dxi=0.0; dyi=0.0; tti=0.0; qxi=0.0; qyi=0.0; px0=1.0; py0=1.0; px4=1.0; py4=1.0; x0=10.0; y0=110.0; x1=40.0; y1=100.0; x2=80.0; y2=90.0; x3=130.0; y3=95.0; x4=20
5、0.0; y4=105.0; moveto(x0,y0); for(i=0;i<n;i+) putpixel(xi,yi,15); putpixel(x0,y0,15); for(i=0;i<n;i+)tti=sqrt(xi-xi-1)*(xi-xi-1)+(yi-yi-1)*(yi-yi-1);if(n=1) goto po; for(i=1;i<=n-1;i+) ai=2*(tti+tti+1); bi=tti+1; ci=tti; dxi=3*(tti*(xi+1-xi)/tti+1+tti+1*(yi-yi+1)/tti);dxi=dx1-tt2*px0;dxn-1=
6、dxn-1-ttn-1*pxn;dy1=dy1-tt2*py0;dyn-1=dyn-1-ttn-1*pyn;if(n=2) px1=dx1/a1; py1=dy1/a1; goto po; c1=c1/a1; for(i=2;i<=n-1;i+) ai=ai-bi*ci-1; ci=ci/ai; qx1=dx1/a1; qy1=dy1/a1; for(i=2;i<=n-1;i+) qxi=(dxi-bi*qxi-1)/ai; qyi=(dyi-bi*qyi-1)/ai; pxn-1=qxn-1; qyn-1=qyn-1; for(i=n-2;i>=1;i-) pxi=qxi-
7、ci*pxi+1; pyi=qyi-ci*pyi+1; po: for(i=0;i<=n-1;i+) bx3=(3*(xi+1-xi)/tti+1-2*pxi-pxi+1)/tti+1; bx4=(2*(xi-xi+1)/tti+1+pxi+pxi+1)/tti+1)/tti+1; by3=(3*(yi+1-yi)/tti+1-2*pyi-pyi+1)/tti+1; by4=(2*(yi-yi+1)/tti+1+pyi+pyi+1)/tti+1)/tti+1; t=0; do t=t+es; cx=xi+(pxi+(bx3+bx4*t)*t)*t; cy=yi+(pyi+(by3+by4
8、*t)*t)*t; lineto(cx,cy); while(t<tti+1); getch( ); closegraph( ); xi i型值点 x 坐标yi i型值点 y 坐标ai初始赋值 方程组系数矩阵m i,i的值bi初始赋值 方程组系数矩阵m i,i+1的值ci初始赋值 方程组系数矩阵m i,i-1的值pxi i型值点导函数 x 值pyi i型值点导函数 y 值qxi,qyi,dxi,dyi 均为解方程组中的各项系数tti 第i段参数范围(型值点i-1到型值点i的距离)bx,y3 每段函数中二次项的系数bx,y4 每段函数中三次项的系数cx 每段函数中各点的x值cy 每段函数中各点的y值es 作图时每段以直代曲中的参数增量其中 方程矩阵形式为:m 1,1 m 1,2 p1 c1m 2,1 m 2,2 m 2,3 p2 c2 m 3,2 m 3,3 m 3,4 p3 c3 . . . . = . m n-1,n-2 m n-1,n-1 m n-1,n pn-1 cn-1 m n,n-1 m n,n pn cn将系数矩阵改写为:其中 方程矩阵形式为:(变量与代码变量不对应,如a2不等于a2)m 1,1 m 1,2 l1 1 u1m 2,1 m 2,2 m 2,3 a2 l2 1 u2 m 3,2 m 3,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东清远市英德市人民武装部招聘专项临聘人员1人备考题库及参考答案详解(综合卷)
- 2026四川成都青白江区中医医院集团编外人员招聘31人备考题库及1套参考答案详解
- 2026内蒙古通辽市科尔沁左翼后旗招聘政府专职消防员29人备考题库及答案详解(必刷)
- 2026陕西西安交通大学教务处文员招聘1人备考题库及答案详解【名师系列】
- 2026岭南师范学院招聘二级学院院长2人备考题库(广东)含答案详解(满分必刷)
- 中国中煤能源集团有限公司2026届高校毕业生春季招聘备考题库及答案详解(历年真题)
- 2026四川南充营山县人民医院助理全科医生培训招收7人笔试参考题库及答案解析
- 2026年湖南益阳市市直医疗卫生单位招聘及引进紧缺(急需)专业人才39人笔试模拟试题及答案解析
- 2026重庆九洲星熠导航设备有限公司招聘项目管理岗等岗位2人考试备考题库及答案解析
- 2026年上半年安徽省人工智能产业投资发展有限公司社会招聘7名考试备考题库及答案解析
- ivd行业市场分析2026报告
- DB44∕T 2792-2025 城镇内涝风险评估与治理技术标准
- 2026中信证券分支机构校园招聘笔试历年难易错考点试卷带答案解析
- 2026四川成都双流区面向社会招聘政府雇员14人备考题库带答案详解
- 2026万基控股集团有限公司招聘50人笔试模拟试题及答案解析
- DB37∕T 4962-2025 综合视频会议实施指南
- 2026内蒙古环投集团社会招聘17人笔试参考题库及答案解析
- 2026江苏省人民医院行风监督处管理辅助岗招聘1人考试备考题库及答案解析
- 2026年宁夏财经职业技术学院单招职业适应性考试题库及答案详解(各地真题)
- 无人机空中交通管控平台-洞察与解读
- 中医基础理论考试试题库(附答案)
评论
0/150
提交评论