二次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 样条曲线代码(方法一):
1 2 3 4 5 6 7
2
4
6
8
10
12
14
16
18
0 1 2 3 4 5 6 7 8 9
0
2
4
6
8
10
12
14
16
18
20
评论0