二次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样条曲线代码(方法一):