版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机科学与通信工程学院实验报告课程计算机图形学实验题目实验二:曲线拟合学生姓名学号专业班级指导教师日期成绩评定表评价内容具体内容权重得分论证分析方案论证与综合分析的正确、合理性20%算法设计算法描述的正确性与可读性20%编码实现源代码正确性与可读性30%程序书写规范标识符定义规范,程序书写风格规范20%报告质量报告清晰,提交准时10%总 分指导教师签名1. 实验内容1. 绘制三次Bezier曲线(1)给定四个已知点P1P4,以此作为控制顶点绘制一段三次Bezier曲线。(2)给定四个已知点P1P4,以此作为曲线上的点绘制一段三次Bezier曲线。2. 绘制三次B样条曲线给定六个已知点P1P6
2、,以此作为控制顶点绘制一条三次B样条曲线。2. 实验环境Windows xpVs 20083. 问题分析Bezier曲线通过一组多边折线的各顶点唯一的定义出来。 在多边折线的各顶点中,只有第一点和最后一点在曲线上,其余的顶点则用来定义曲线的导数,阶次和形状。三次Bezieer曲线经过首、末两个控制点,且与特征多边形的首、末两条边相切。因此在给定四个控制点的情况下,可以根据线性贝塞尔曲线描述的中介点 Q0、Q1、Q2,和由二次曲线描述的点 R0、R1 所建构。也可以在给定四个线上点的情况下根据公式计算出曲线。总之,只要获得了四个控制点的坐标,便可以通过编程来绘制出曲线。对于给出了四个曲线上点的曲
3、线,由于控制点的坐标位于曲线上,而且在相交处两曲线的切平面重合,曲率相等。可以据此来绘制图形。B样条曲线是Bezier曲线的拓广,它是用B样条基函数代替了Bezier曲线表达式中的Bernstain基函数。在空间给定n1个点的位置向量Pi (i=0,1,2,n, n>=k),则称参数曲线 (0t1)为k阶(或k1次)的B样条曲线。其中Ni,k(t)为B样条基函数。其中Ni,k(t)为B样条基函数。给定的n1个点为B样条曲线的控制顶点,由其构成的多边折线称B特征多边形。三次B样条曲线的端点特性:图 1 b给定4个点绘制的b样条曲线三次B样条曲线的连续性:在已有的三次B样条曲线的基础上,增加
4、一个控制点,就可相应地增加一段B样条曲线,并自然地达到 C2连续。图 2给定五个点所绘制的b样条曲线4. 算法设计下图3为给定四个已知点,以此作为控制顶点绘制一段三次Bezier曲线的流程图。图4为给定四个曲线上点,绘制三次Bezier曲线的流程图。图5为给定六个控制点所绘制三次b样条曲线的流程图。图 3图 4 图 55. 源代码/以已知的四个点为控制点绘制Bezier曲线void CDiamondView:DrawBezier1(POINT p4)CDC *pDC = GetDC(); InvalidateRect(NULL); UpdateWindow(); CPen newPen,*ol
5、dPen; newPen.CreatePen(PS_SOLID,2,RGB(0,0,0); oldPen = pDC->SelectObject(&newPen);pDC->Polyline(p,4); pDC->SelectObject(oldPen);newPen.DeleteObject(); newPen.CreatePen(PS_SOLID, 1, RGB(255,0,0); oldPen = pDC->SelectObject(&newPen);double ax,bx,cx,dx,ay,by,cy,dy,x,y,t;ax=(-p0.x)+(
6、3*p1.x)-(3*p2.x)+(p3.x); bx=(3*p0.x)-(6*p1.x)+(3*p2.x); cx=(-3*p0.x)+(3*p1.x); dx=p0.x; ay=(-p0.y)+(3*p1.y)-(3*p2.y)+(p3.y); by=(3*p0.y)-(6*p1.y)+(3*p2.y); cy=(-3*p0.y)+(3*p1.y); dy=p0.y; pDC->MoveTo(p0.x,p0.y); for(t=0;t<=1;t+=0.01) x=ax*t*t*t+bx*t*t+cx*t+dx; y=ay*t*t*t+by*t*t+cy*t+dy; pDC-&g
7、t;LineTo(x,y); Sleep(1); pDC->SelectObject(oldPen);/以已知的四个点为Bezier曲线上的点来绘制Bezier曲线void CDiamondView:DrawBezier2(POINT p4)POINT a3,b3;POINT a11,b11;for(int i=0;i<=2;i+)if(i=0)a10=pi;b10=pi+2;else if(i=2)a10=pi-1;b10=pi+1;elsea10=pi-1;b10=pi+2;bi.y=pi+1.y+(pi.y)-(b10.y)/4;bi.x=pi+1.x+(pi.x)-(b10
8、.x)/4;ai.y=pi.y+(pi+1.y)-(a10.y)/4;ai.x=pi.x+(pi+1.x)-(a10.x)/4;CDC *pDC = GetDC();CPen newPen,*oldPen; newPen.CreatePen(PS_SOLID,2,RGB(0,255,0); oldPen = pDC->SelectObject(&newPen);for(int i=0;i<=2;i+)POINT p14=pi.x,pi.y,ai.x,ai.y,bi.x,bi.y,pi+1.x,pi+1.y; pDC->PolyBezier(p1,4); pDC->
9、;SelectObject(oldPen);/以已知的六个点为控制点来绘制B样条曲线/p:已知的六个控制点void CDiamondView:DrawBCurve(POINT p6) InvalidateRgn(NULL); UpdateWindow(); CDC *pDC = GetDC(); CPen newPen,*oldPen; newPen.CreatePen(PS_SOLID,2,RGB(255,0,0); oldPen = pDC->SelectObject(&newPen); int rate=1000; int ax,ay,bx,by,cx,cy,dx,dy;
10、double x,y; pDC->Polyline(p, 6); pDC->SelectObject(oldPen); newPen.DeleteObject(); newPen.CreatePen(PS_SOLID,3,RGB(0,0,255); oldPen = pDC->SelectObject(&newPen); for(int i=0;i<3;i+) ax=-(pi.x-3*pi+1.x+3*pi+2.x-pi+3.x)/6; bx=(pi.x-2*pi+1.x+pi+2.x)/2; cx=-(pi.x-pi+2.x)/2; dx=(pi.x+4*pi
11、+1.x+pi+2.x)/6; ay=-(pi.y-3*pi+1.y+3*pi+2.y-pi+3.y)/6; by=(pi.y-2*pi+1.y+pi+2.y)/2; cy=-(pi.y-pi+2.y)/2; dy=(pi.y+4*pi+1.y+pi+2.y)/6; for(double t=0;t<=1;t+=1.0/rate) x=ax*pow(t,3)+bx*pow(t,2)+cx*t+dx; y=ay*pow(t,3)+by*pow(t,2)+cy*t+dy; pDC->MoveTo(Round(x),Round(y); pDC->LineTo(Round(x),Round(y); Sleep(2); pDC->SelectObject(oldPen);6. 程序运行结果下图6为给定四个已知点,以此作为控制顶点绘制的一段三次Bezier曲线。图8为给定四个曲线上点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 零售业门店经理的招聘与应聘要点
- 护理团队建设中的团队角色认知
- 护理团队专业成长
- 听力检测的职业道德
- 护理应急预案演练情景模拟
- DB35-T 2294-2026 海峡两岸共通 直升机救生作业要求
- 统编版道德与法治四年级下册第2课说话要算数 第一课时教学设计
- 2026届高三语文作文导写范文5篇
- 护理服务标准化建设与实践
- 俄语专业女生就业指南
- 2026吐鲁番高昌区招聘社区工作者36人笔试备考试题及答案解析
- (一模)包头市2026年高三第一次模拟考试历史试卷(含答案)
- 成人肠内营养耐受不良识别与防治专家共识2026
- 1.身心健康很重要(教学课件)统编版道德与法治二年级下册
- 2025-2026学年春季第二学期中小学总务处工作计划
- 血透室发生地震应急预案演练
- 多囊卵巢综合征诊疗指南(2025年版)
- 公司监事会档案管理制度
- 光伏网络安全培训
- TCSES88-2023建设项目竣工环境保护设施验收技术规范污染影响类总则
- 行政岗位任职资格分级标准详解
评论
0/150
提交评论