4

Matlab绘制贝塞尔曲线的方法是什么?您必须自己进行编程吗?

我不是在寻找用户制作的例程,而是在询问 Matlab 是否提供了一种标准的方式来绘制它们。

4

4 回答 4

4

借助曲线拟合工具箱,Matlab 支持 B 样条,它是 Bézier 曲线的推广。没有内部结的有理 B 样条是贝塞尔样条。

例如

p = spmak([0 0 0 1 1 1],[1 0;0 1]);
fnplt(p)

将绘制一条贝塞尔曲线,控制点位于 (0,0),(1,0),(1,1),(0,1)。

于 2012-04-14T14:43:45.257 回答
2

在查看和搜索文档后,我的答案是否定的:您必须使用第 3 方实现之一。

最可能的候选者是interp族函数,它们不实现贝塞尔插值。

于 2010-02-20T10:05:43.123 回答
2

你可以试试这个,http://www.cnblogs.com/begtostudy/articles/1787709.html

于 2010-07-29T03:23:55.503 回答
2

以下代码基于此链接

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
于 2017-09-01T07:17:46.010 回答