用戶應該輸入N個控制點,由此繪製第一條貝塞爾曲線。在此之後,用戶再次輸入P個控制點,然後使用第一條曲線的最後一個點和最近輸入的控制點,將另一個貝塞爾曲線與它混合,該曲線必須與第一條曲線連續。 我正在使用以下內容來繪製曲線,但無法檢查連續性。請幫忙。matlab中的連續貝塞爾曲線
N=input('enter the number of control points ');
for (i=1:N)
P(i,:)=input('enter the coordinates of point [x y]');
end
K=input('enter the number of points to plot ');
syms u
Px=0;
Py=0;
for(i=1:N)
b=(factorial(N-1)/factorial(N-1-i+1)/factorial(i-1))*(u^(i-1))*(1-u)^(N-1-i+1);
Px= Px+ b*P(i,1);
Py= Py+ b*P(i,2);
end
for(i=1:K+1)
Rx(i)=subs(Px,u,(i-1)/K);
Ry(i)=subs(Py,u,(i-1)/K);
end
plot(Rx,Ry)
axis equal
在數學方面,更難。在編程方面,C1/C2實際上非常簡單:只需要從上一個曲線的第三和第四個點計算矢量(dx,dy),然後將新節段的第一個控制點對齊或更容易允許用戶提供第一個控制點在通過前一曲線的第三和第四點的線上,只允許最後兩個座標是「空閒的」。 – 2014-11-24 17:26:29