网站大量收购独家精品文档,联系QQ:2885784924

Matlab 画二次及三次Bezier曲线,控制点的B样条曲线.doc

Matlab 画二次及三次Bezier曲线,控制点的B样条曲线.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab 画二次及三次Bezier曲线,控制点的B样条曲线.doc

二次Bezier曲线代码: m-文件函数: function bezier2(p0,p1,p2) t=0:0.001:1; x=(p2(1)-2*p1(1)+p0(1))*t.^2+2*(p1(1)-p0(1))*t+p0(1); y=(p2(2)-2*p1(2)+p0(2))*t.^2+2*(p1(2)-p0(2))*t+p0(2); plot([p0(1) p1(1) p2(1)],[p0(2) p1(2) p2(2)],b),hold on plot(x,y,r); 执行: bezier2([1,3],[4,18],[7,6]) 三次Bezier曲线代码: function bezier3(p0,p1,p2,p3) t=0:0.001:1; x=(1-t).^3*p0(1)+3*t.*(1-t).^2*p1(1)+3*t.^2.*(1-t)*p2(1)+t.^3*p3(1); y=(1-t).^3*p0(2)+3*t.*(1-t).^2*p1(2)+3*t.^2.*(1-t)*p2(2)+t.^3*p3(2); plot([p0(1) p1(1) p2(1) p3(1)],[p0(2) p1(2) p2(2) p3(2)],b); hold on; plot(x,y,r); 执行: bezier3([0,3],[5,20],[7,2],[9,1]) B样条曲线代码(方法一): function Byangtiao8(p) t=0:0.005:1; hold 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) 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)]); 执行: Byangtiao8([4,6,3,1,7,9,15,11;0,9,11,15,15,7,6,12]) B样条曲线代码(方法二): function Byt8(p0,p1,p2,p3,p4,p5,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) p1(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) 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.

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档