ベジェ曲線の計算と描画
%初期値入力
n=input('');
for i=1:n
Px=input('');
Py=input('');
end
t=input('t=');
%制御点のプロット
plot(Px, Py);
hold on;
%tを昇順にソートする
ts=sort(t);
%ベジェ曲線の計算とプロット
n=n-1; %nは0〜なので、0〜n-1迄とする。
j=0;
k=1;
for tn=[0:0.01:1]
j=j+1;
rx(j)=0; %r(t)の計算のため、rx,ryを初期化
ry(j)=0;
for i=0:n
rx(j)=rx(j)+factorial(n)/factorial(n-i)/factorial(i)*((1-tn)^(n-i))*(tn^(i))*Px(i+1);
ry(j)=ry(j)+factorial(n)/factorial(n-i)/factorial(i)*((1-tn)^(n-i))*(tn^(i))*Py(i+1);
end
ttn=fix(tn*100); %matlabの仕様のため100*tnと100*tsを比較する。
tts=fix(ts(k)*100);
if ttn=tts %ttn=ttsの時のr(t)の値を記憶し、さらにプロットする
x(k)=rx(j);
y(k)=ry(j);
plot(rx(j),ry(j),'x');
k=k+1; %ts(k)のkに1足す
end
end
plot(rx, ry, 'r');
disp('r(t)のxの値');x %r(t)のxとyの表示
disp('r(t)のyの値');y