Come è possibile disegnare una curva di Bezier in Matlab
Domanda
Qual è il modo Matlab per disegnare una curva di Bezier? Avete programmare da soli?
Io non sono alla ricerca di una routine fatta utente, ma chiedo se Matlab offre un modo standard per disegnarli.
Soluzione
Dopo aver guardato e la ricerca attraverso la documentazione, la mia risposta è no:. Che avrebbe dovuto andare con una delle implementazioni 3rd party
Transito dall'aeroporto candidato sarebbe il funzioni della famiglia interp
, e implementare senza interpolazione di Bezier.
Altri suggerimenti
Con il Curve Fitting Toolbox, Matlab supporta B-spline, che sono una generalizzazione di curve di Bézier. A B-spline razionale, senza nodi interni è una spline di Bézier.
Ad esempio
p = spmak([0 0 0 1 1 1],[1 0;0 1]);
fnplt(p)
sarebbe tracciare una curva di Bézier con i punti di controllo (0,0), (1,0), (1,1), (0,1).
Si può provare questo, http://www.cnblogs.com/begtostudy/ articoli / 1787709.html
Il seguente codice in base a questo 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