ベジェ曲線の計算と描画

%初期値入力
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