ベジェ曲線を描くMatlabの方法は何ですか?あなたはそれを自分でprgoramする必要がありますか?
私はユーザーが作成したルーチンを探していませんが、Matlabがそれらを描画するための標準的な方法を提供しているかどうかを尋ねています。
カーブフィッティングツールボックスを使用すると、Matlabはベジェ曲線の一般化であるBスプラインをサポートします。内部ノットのない有理Bスプラインは、ベジエスプラインです。
例えば
p = spmak([0 0 0 1 1 1],[1 0;0 1]);
fnplt(p)
(0,0)、(1,0)、(1,1)、(0,1)に制御点があるベジェ曲線をプロットします。
ドキュメントを調べて検索した後、私の答えは「いいえ」です。サードパーティの実装の1つを使用する必要があります。
最も可能性の高い候補はinterp
ファミリ関数であり、ベジェ補間を実装していません。
このリンクに基づく次のコード。
function B = bazier( t, P )
%Bazier curve
% Parameters
% ----------
% - t: double
% Time between 0 and 1
% - C: 2-by-n double matrix
% Control points
%
% Returns
% -------
% - B: 2-by-1 vector
% Output point
B = [0, 0]';
n = size(P, 2);
for i = 1:n
B = B + b(t, i - 1, n - 1) * P(:, i);
end
end
function value = b(t, i, n)
value = nchoosek(n, i) * t^i * (1 - t)^(n - i);
end