[x,y]=bezier(x,y)
%用法:
%bezier(x,y)
%
%h=bezier(x,y)
%
生成n-1次贝塞败明尔曲线并返回曲线句柄
%[x,y]=bezier(x,y)
%
返回n-1次贝塞尔曲线的坐标察世告
%例子:
%bezier([5,6,10,12],[0
5
-5
-2])
n=length(x)
t=linspace(0,1)
xx=0yy=0
for
k=0:n-1
tmp=nchoosek(n-1,k)*t.^k.*(1-t).^(n-1-k)
xx=xx+tmp*x(k+1)
yy=yy+tmp*y(k+1)
end
if
nargout==2
x=xxy=yy
end
h=plot(xx,yy)
if
nargout==1
x=h
end
N即为几次贝塞尔曲线,Px,Py为控洞中枯制点数组培唯,纳洞t就是曲线要分成多少直线段了for (j = N-1j >0j--)
for (i = 0i <ji++){
Px[i] = (1-t)*Px[i] + t*Px[i+1] Py[i] = (1-t)*Py[i] + t*Py[i+1]
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)