




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档 1、 贝塞尔曲线的拼接 画用matlab代码如下: % By lyqmath clc; clear all; close all; p=1 2; 4 8; 6 15; 9 18; p=p; t=linspace(0,1,200); n=size(p,2)-1; r=0; for k=0:n r=r+prod(1:n)/(prod(1:k)*prod(1:n-k)*p(:,k+1)*(t.k.*(1-t).(n-k); end plot(r(1,:),r(2,:),p(1,:),p(2,:),-or) 5、B样条曲线的正算 function Byt8(p0,p1,p2,p3,p4,p5
2、,p6,p7) t=0:0.001:1; %m=-1 3 -3 1;3 -6 3 0;-3 0 3 0;1 4 1 0; x=p0(1)*(1/6)*(-t.3+3*t.2-3*t+1)+p1(1)*(1/6)*(3*t.3-6*t.2+4). +p2(1)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p3(1)*(1/6)*t.3; y=p0(2)*(1/6)*(-t.3+3*t.2-3*t+1)+p1(2)*(1/6)*(3*t.3-6*t.2+4). +p2(2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p3(2)*(1/6)*t.3; %plot(p0(1) p
3、1(1) p2(1) p3(1),p0(2) p1(2) p2(2) p3(2); hold on; plot(x,y,r); x=p1(1)*(1/6)*(-t.3+3*t.2-3*t+1)+p2(1)*(1/6)*(3*t.3-6*t.2+4). +p3(1)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p4(1)*(1/6)*t.3; y=p1(2)*(1/6)*(-t.3+3*t.2-3*t+1)+p2(2)*(1/6)*(3*t.3-6*t.2+4). +p3(2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p4(2)*(1/6)*t.3; %plot(p0(1
4、) p1(1) p2(1) p3(1),p0(2) p1(2) p2(2) p3(2); hold on; plot(x,y,r); x=p2(1)*(1/6)*(-t.3+3*t.2-3*t+1)+p3(1)*(1/6)*(3*t.3-6*t.2+4). 精品文档精品文档 +p4(1)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p5(1)*(1/6)*t.3; y=p2(2)*(1/6)*(-t.3+3*t.2-3*t+1)+p3(2)*(1/6)*(3*t.3-6*t.2+4). +p4(2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p5(2)*(1/6)*t.3
5、; %plot(p0(1) p1(1) p2(1) p3(1),p0(2) p1(2) p2(2) p3(2); hold on; plot(x,y,r); x=p3(1)*(1/6)*(-t.3+3*t.2-3*t+1)+p4(1)*(1/6)*(3*t.3-6*t.2+4). +p5(1)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p6(1)*(1/6)*t.3; y=p3(2)*(1/6)*(-t.3+3*t.2-3*t+1)+p4(2)*(1/6)*(3*t.3-6*t.2+4). +p5(2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p6(2)*(1/6)*
6、t.3; %plot(p0(1) p1(1) p2(1) p3(1),p0(2) p1(2) p2(2) p3(2); hold on; plot(x,y,r); x=p4(1)*(1/6)*(-t.3+3*t.2-3*t+1)+p5(1)*(1/6)*(3*t.3-6*t.2+4). +p6(1)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p7(1)*(1/6)*t.3; y=p4(2)*(1/6)*(-t.3+3*t.2-3*t+1)+p5(2)*(1/6)*(3*t.3-6*t.2+4). +p6(2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p7(2)*(1/
7、6)*t.3; %plot(p0(1) p1(1) p2(1) p3(1),p0(2) p1(2) p2(2) p3(2); hold on; plot(x,y,r); plot(p0(1) p1(1) p2(1) p3(1) p4(1) p5(1) p6(1) p7(1),p0(2) p1(2) p2(2) p3(2) p4(2) p5(2) p6(2) p7(2); 执行: Byt8(0,0,1,4,3,9,5,7,6,2,7,6,9,5,11,3) 9 876543210024681012 6、B样条曲线的反算 function Byangtiao8(p) t=0:0.005:1; ho
8、ld on for i=1:5 x=p(1,i)*(1/6)*(-t.3+3*t.2-3*t+1)+p(1,i+1)*(1/6)*(3*t.3-6*t.2+4). +p(1,i+2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p(1,i+3)*(1/6)*t.3; y=p(2,i)*(1/6)*(-t.3+3*t.2-3*t+1)+p(2,i+1)*(1/6)*(3*t.3-6*t.2+4). +p(2,i+2)*(1/6)*(-3*t.3+3*t.2+3*t+1)+p(2,i+3)*(1/6)*t.3; 精品文档精品文档 plot(x,y,k); end plot(p(1,1)
9、p(1,2) p(1,3) p(1,4) p(1,5) p(1,6) p(1,7) p(1,8),p(2,1) p(2,2) p(2,3) p(2,4) p(2,5) p(2,6) p(2,7) p(2,8); 7、双三次B样条曲面的算法 / TestView.cpp : implementation of the CTestView class / #include stdafx.h #include Test.h #define ROUND(a) int(a+0.5)/四舍五入 #include math.h/数学头文件 #include TestDoc.h #include TestVi
10、ew.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_; #endif / / CTestView IMPLEMENT_DYNCREATE(CTestView, CView) BEGIN_MESSAGE_MAP(CTestView, CView) /AFX_MSG_MAP(CTestView) ON_COMMAND(ID_MENUDrawHermite, OnMENUDrawHermite) 精品文档精品文档 /AFX_MSG_MAP / Standard printing
11、 commands ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview) END_MESSAGE_MAP() / / CTestView construction/destruction CTestView:CTestView() / TODO: add construction code here /9个型值点的初始化 p100=410
12、;p101=532; p110=210;p111=386; p120=410;p121=316; p130=310;p131=162; p140=510;p141=50; p150=710;p151=162; p160=610;p161=316; p170=810;p171=386; p180=610;p181=532; /9个型值点导数的初始化 p200=100;p201=-100; p210=100;p211=-100; p220=100;p221=-100; p230=100;p231=-100; p240=-100;p241=-100; p250=-100;p251=100; p260
13、=-100;p261=100; p270=-100;p271=100; p280=-100;p281=-100; CTestView:CTestView() BOOL CTestView:PreCreateWindow(CREATESTRUCT& cs) / TODO: Modify the Window class or styles here by modifying / the CREATESTRUCT cs return CView:PreCreateWindow(cs); 精品文档精品文档 / / CTestView drawing void CTestView:OnDraw(CDC
14、* pDC) CTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here CPen MyPen,*pOldPen; MyPen.CreatePen(PS_SOLID,3,RGB(0,0,255);/蓝色笔绘制特征多边形 pOldPen=pDC-SelectObject(&MyPen); pDC-MoveTo(p100,p101); pDC-Ellipse(p100-2,p101-2,p100+2,p101+2);/绘制特征多边形顶点 for(int i=1;iLin
15、eTo(p1i0,p1i1); pDC-Ellipse(p1i0-2,p1i1-2,p1i0+2,p1i1+2); pDC-SelectObject(pOldPen); MyPen.DeleteObject(); / / CTestView printing BOOL CTestView:OnPreparePrinting(CPrintInfo* pInfo) / default preparation return DoPreparePrinting(pInfo); void CTestView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInf
16、o*/) / TODO: add extra initialization before printing void CTestView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) / TODO: add cleanup after printing / 精品文档 精品文档/ CTestView diagnostics #ifdef _DEBUG void CTestView:AssertValid() const CView:AssertValid(); void CTestView:Dump(CDumpContext& dc) co
17、nst CView:Dump(dc); CTestDoc* CTestView:GetDocument() / non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CTestDoc); return (CTestDoc*)m_pDocument; #endif /_DEBUG / / CTestView message handlers Hermite三次插值样条void CTestView:Hermite(CDC *pDC)/绘制 0,0,0;/Mh矩阵系数 int b42;/边界点 for(int i=0;iSelectObject(&MyPen); pDC-MoveTo(p1i0,p1i1); for(double t=0.0;tLineTo(x,y); 精品文档精品文档 pDC-SelectObject(pOldPen); MyPen.DeleteObject(); void CTestView:MultiMatrix(int a44,int b42)/矩阵相乘 int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级网络安全工程师面试技巧与模拟题详解
- 生猪免疫接种管理方案
- 学生宿舍楼智能门禁与安防系统建设
- 分布式光伏发电系统网络优化方案
- 2025年数据增强几何变换策略(含答案与解析)
- 部编版一年级数学下册个性化教学计划
- 碎石生产线建设与布局方案
- 老旧小区施工安全与质量管理方案
- “双减”背景下作业减负与提效心得体会
- 银发经济2025展望:老年旅游市场细分需求与定制化产品开发报告
- 2025年本科院校基建处招聘笔试预测试题及答案
- 商业租赁纠纷常见法律问题实务分析
- 2025-2026学年青岛版(2017)小学科学五年级上册教学计划及进度表
- 市场监管局计量监管课件
- 直肠恶性肿瘤护理查房
- 浙江省杭州市钱塘区八年级下学期期末科学试卷
- 农艺师工作业绩总结
- 皮肤 T 细胞淋巴瘤诊疗指南(2025年版)
- 监理质量保证体系及保证措施
- 文物鉴定与历史复原-洞察及研究
- DB44T 1591-2015 小档口、小作坊、小娱乐场所消防安全整治技术要求
评论
0/150
提交评论