已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
+ 实验 (二) 项目名称: B样条曲线几何原理演示1、 实验要求在屏幕上使用鼠标左键绘制任意点形成控制多边形,单击鼠标右键绘制三次B样条曲线的程序,同时在控制多边形的每一个控制三角形内显示曲线生成原理,效果如图。原理:2、 实验过程(有关主要代码如下:)bool Flag;/标志CPoint *pt;/顶点int CtrlPoint;/控制多边形顶点/绘制B曲线void CTestView:DrawBSpline()CClientDC dc(this);int i,rate=10;long lx,ly;double F03,F13,F23,F33;lx=ROUND(pt0.x+4.0*pt1.x+pt2.x)/6.0);ly=ROUND(pt0.y+4.0*pt1.y+pt2.y)/6.0);dc.MoveTo(lx,ly);CPen NewPen(PS_SOLID,1,RGB(0,0,255);CPen *OldPen=dc.SelectObject(&NewPen);for(i=1;i=CtrlPoint-3;i+)for(double t=0;t=1;t+=1.0/rate)F03=(-t*t*t+3*t*t-3*t+1)/6;/计算F0,3(t)F13=(3*t*t*t-6*t*t+4)/6;/计算F1,3(t)F23=(-3*t*t*t+3*t*t+3*t+1)/6;/计算F2,3(t)F33=t*t*t/6;/计算B3,3(t)lx=ROUND(pti-1.x*F03+pti.x*F13+pti+1.x*F23+pti+2.x*F33);ly=ROUND(pti-1.y*F03+pti.y*F13+pti+1.y*F23+pti+2.y*F33);dc.LineTo(lx,ly);Sleep(100);dc.SelectObject(OldPen);NewPen.DeleteObject();/绘制控制多边形void CTestView:DrawCharPolygon()CClientDC dc(this);CPen MyPen,*pOldPen;MyPen.CreatePen(PS_SOLID,3,RGB(0,0,0);pOldPen=dc.SelectObject(&MyPen);for(int i=0;iCtrlPoint;i+)if(i=0)dc.MoveTo(pti);dc.Ellipse(pti.x-2,pti.y-2,pti.x+2,pti.y+2);elsedc.LineTo(pti);dc.Ellipse(pti.x-2,pti.y-2,pti.x+2,pti.y+2);dc.SelectObject(pOldPen);MyPen.DeleteObject();/获得屏幕控制点坐标void CTestView:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultCView:OnLButtonDown(nFlags, point);if(Flag)ptCtrlPoint.x=point.x;ptCtrlPoint.y=point.y;if(CtrlPointN_MAX_POINT-1)CtrlPoint+;elseFlag=false;DrawCharPolygon();/调用绘制函数void CTestView:OnRButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call defaultif(CtrlPoint!=0)Flag=false;DrawBSpline();CView:OnRButtonDown(nFlags, point);/绘制绘制几何生成原理图void CTestView:DrawStruct() CClientDC dc(this);CPen NewPen(PS_DOT,1,RGB(0,0,0);CPen *OldPen=dc.SelectObject(&NewPen);int x,y;for(int i=1;i=CtrlPoint-2;i+)x=(pti-1.x+pti+1.x)/2;y=(pti-1.y+pti+1.y)/2;dc.MoveTo(pti.x,pti.y);dc.LineTo(x,y);dc.MoveTo(pti-1.x,pti-1.y);dc.LineTo(pti+1.x,pti+1.y);dc.SelectObject(OldPen);NewPen.DeleteObject();/绘制曲线菜单函数void CTestView:OnMENUBCurve() / TODO: Add your command handler code hereRedrawWindow();MessageBox(单击左键绘制控制多边形,单击右键绘制曲线,提示,MB_OK);pt=new CPointN_MAX_POINT;Flag=true;CtrlPoint=0;/绘制几何结构菜单函
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息通信信息化系统管理员岗中安全培训考核试卷含答案
- 掩膜版制造工岗中技能理论考核试卷含答案
- 2026年增长策略高级研究员招聘笔试试卷 招录10人
- 2026年元宇宙行业高级应用师招聘笔试试卷 招录14人通关秘籍题库
- 2026年用户研究高级专家招聘笔试试卷 招录11人
- 2026年四川省都江堰市高三数学下册期末考试模拟检测卷含完整答案【夺冠系列】
- 2026年四川省万源市高三数学下册期末考试模拟试卷【培优】附答案
- 2026年吉林省敦化市高三数学下册期末考试模拟检测卷含完整答案【有一套】
- 2026年福建省武夷山市高三数学下册期末考试模拟检测卷及参考答案【基础题】
- 2026年吉林省双辽市高三数学下册期末考试模拟卷附参考答案(巩固)
- 中国老年人睡眠管理新范式专家共识(2026 版)
- 2026年托业(TOEIC)全真试题及详细答案解析
- 中国慢性乙型肝炎功能性(临床)治愈临床实践专家共识课件
- 苏少版美术四年级上册第三课《精彩的表达》教学课件
- 航空文化考试题及答案解析
- 2027物理步步高 大一轮复习第六章 微点突破3 机车启动问题
- 2026年辽宁省中考数学试卷(含答案及解析)
- GB/T 24002.2-2026环境管理体系针对环境主题领域应用GB/T 24001管理环境因素和应对环境状况的指南第2部分:水
- 聚变装置-氚聚变设施和聚变燃料处理设施的密封和通风系统的设计和操作标准标准立项发展报告
- 家装水电施工工艺标准
- 2026广西民族大学招聘专任教师128人笔试参考题库及答案详解
评论
0/150
提交评论