Каков способ Matlab рисовать кривую Безье? Нужно ли вам самому пригорать?Как вы можете нарисовать кривую Безье в Matlab
Я не ищу пользовательскую рутину, но я спрашиваю, предлагает ли Matlab стандартный способ их рисования.
Каков способ Matlab рисовать кривую Безье? Нужно ли вам самому пригорать?Как вы можете нарисовать кривую Безье в Matlab
Я не ищу пользовательскую рутину, но я спрашиваю, предлагает ли Matlab стандартный способ их рисования.
После поиска и поиска документации, я отвечаю «Нет»: вам придется пойти с одной из сторонних реализаций.
Наилучшим кандидатом были бы семейные функции interp
, и они не применяли интерполяцию Безье.
Вы можете попробовать это, http://www.cnblogs.com/begtostudy/articles/1787709.html
С подгонка кривой панели инструментов, 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).
Следующий код, основанный на этом link.
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
Thx. Как я сказал в другом ответе: я на самом деле спрашиваю об этом, потому что я видел, как мой сын программировал кривую Безье в Matlab, я знаю, что каждая программа рисования реализует это, поэтому мне показалось, что программа, как Matlab, тоже должна иметь это. – Edelcom