贝塞尔曲线公式如下(具体推导过程请参见网上),
我所编写的贝塞尔曲线路径平滑函数如下,
function [x, y] = bezir_n(points, M)
%points是控制点,为多行两列的矩阵
%M为你要生成的贝塞尔曲线上点的个数
n = size(points,1) - 1;
if n < 1
x = []; y = [];
return;
elseif n == 1 %一阶贝塞尔曲线,即直线
x = points(:,1);
y = points(:,2);
return;
else
% 使用向量卷积来计算 k值,k是二项式系数nchoosek(n,k)组合在一起的向量,
%也为杨辉三角第n行的所有数。k对应着贝塞尔曲线公式里的二项式展开系数。
k = [1 1];
for i = 1 : (n - 1)
k = conv(k, [1 1]);
end
tem1=n:-1:0;
tem2=0:1:n;
x=[];
y=[];
for t=0:1/(M-1):1
x=[x,sum(k.*(points(:, 1)').*((1-t).^tem1).*(t.^tem2))];
y