當前位置:編程學習大全網 - 網站源碼 - matlab 多個離散三維點 擬合圓 求圓心坐標及半徑 求源代碼

matlab 多個離散三維點 擬合圓 求圓心坐標及半徑 求源代碼

輸入的離散點在

變量X中

X=[x1 y1 z1;

x2 y2 z2;

...........];

是壹個n行,3列的矩陣,1,2,3列分別為x,y,z坐標

p0=mean(X);%以重心為初始圓心

r02=mean(sqrt(sum((X-repmat(p0,[size(X,1) 1])).^2,2)));%以到重心的平均距離為初始半徑

f=@(p)(X(:,1)-p(1)).^2+(X(:,2)-p(2)).^2+(X(:,3)-p(3)).^2-p(4).^2;

p=lsqnonlin(f,[p0 r02]);

x0=p(1);y0=p(2);z0=p(3);

radii=abs(p(4));

x0 y0 z0 為圓心坐標

radii為半徑。

  • 上一篇:C#中如何利用鍵盤鉤子得到按鍵消息
  • 下一篇:誅仙2幫派任務靈氣具體怎麽做才好?
  • copyright 2024編程學習大全網