基本原理
传统的插值方法是经过所有的给定点而形成的光滑曲线,但随着给定点的变多,简单曲线的求解过程也变得越来越繁琐和不易计算并且会产生一些误差,例如龙格现象,而Bezier曲线与传统插值方法不一样,他只经过给定点中的控制点
,而对于给定点中的非控制点并不要求必须经过所求出的插值曲线
插值公式
根据上述原理介绍,我们要构造一条经过那些控制点且对那些非控制点有良好拟合效果的插值曲线,我们不妨先考虑简单的情况:只有两个控制点的情况。
在这种简单情况插值公式为
, 显然
显然满足上述Bezier曲线的要求。
下面列举关于的一些性质,
这些性质很容易验证,这里不在阐述。
代码部分
clear;clc;close all;
% Bezier曲线
P=[0,2;2,4;4,3;6,0];
pause(1)
t=linspace(0,1,11);
n=3
x=[];y=[];
for j=1:11
b=0;b1=0;
for i=1:n+1
a=factorial(n)/(factorial(i-1)*factorial(n-i+1));
b=b+P(i,1)*a*t(j)^(i-1)*(1-t(j))^(n-i+1);
b1=b1+P(i,2)*a*t(j)^(i-1)*(1-t(j))^(n-i+1);
end
x=[x,b];
y=[y,b1];
end
plot(x,y,'r*-')