请问用MATLAB怎么绘制bezier曲线

请问用MATLAB怎么绘制bezier曲线,第1张

function

[x,y]=bezier(x,y)

%用法:

%bezier(x,y)

%

生成n-1次贝塞返睁尔曲线,其中x和y是n个点的坐标

%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]

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12348208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存