三里屯网站建设,wordpress 国内优化,flash制作网站教程,wordpress添加快速链接前言#xff1a;在很多情况下#xff0c;需要根据点云来拟合球体#xff0c;本博文主要介绍各种方法的拟合情况及优缺点#xff0c;希望对各位小伙伴有所帮助#xff01; 目录
1. vtkFitImplicitFunction进行球拟合
2. 四点求解球 1. vtkFitImplicitFunction进行球拟合 …前言在很多情况下需要根据点云来拟合球体本博文主要介绍各种方法的拟合情况及优缺点希望对各位小伙伴有所帮助 目录
1. vtkFitImplicitFunction进行球拟合
2. 四点求解球 1. vtkFitImplicitFunction进行球拟合
缺点需要输入待拟合球的半径和结构即在已知最优解的情况下求解。 vtkMath::RandomSeed(4355412); // for test result consistencydouble radius 1.0;
vtkSmartPointervtkBoundedPointSource points vtkSmartPointervtkBoundedPointSource::New();
points-SetNumberOfPoints(1000000);
points-SetBounds(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0);
points-Update();vtkSmartPointervtkSphere sphere vtkSmartPointervtkSphere::New();
sphere-SetRadius(radius*2);vtkSmartPointervtkFitImplicitFunction fit vtkSmartPointervtkFitImplicitFunction::New();
fit-SetInputConnection(points-GetOutputPort());
fit-SetImplicitFunction(sphere);
fit-SetThreshold(.01);
fit-Update();
std::cout fit-GetOutput()-GetNumberOfPoints() out of points-GetNumberOfPoints() points are within fit-GetThreshold() of the implicit function std::endl;vtkSmartPointervtkSphereSource sphereSource vtkSmartPointervtkSphereSource::New();
sphereSource-SetRadius(radius * .05);vtkSmartPointervtkGlyph3D glyph3D vtkSmartPointervtkGlyph3D::New();
glyph3D-SetInputConnection(fit-GetOutputPort());
glyph3D-SetSourceConnection(sphereSource-GetOutputPort());
glyph3D-ScalingOff();
glyph3D-Update();vtkSmartPointervtkPolyDataMapper glyph3DMapper vtkSmartPointervtkPolyDataMapper::New();
glyph3DMapper-SetInputConnection(glyph3D-GetOutputPort());vtkSmartPointervtkActor glyph3DActor vtkSmartPointervtkActor::New();
glyph3DActor-SetMapper(glyph3DMapper);
glyph3DActor-GetProperty()-SetColor(0.8900, 0.8100, 0.3400);m_viewer-renderWindow()-GetRenderers()-GetFirstRenderer()-AddActor(glyph3DActor);
m_viewer-renderWindow()-Render();2. 四点求解球
缺点要求输入的四点为精确球上的点否则计算错误。
void fitSphere(vtkPoints* points, double center[3], double radius) {double p1[3];double p2[3];double p3[3];double p4[3];points-GetPoint(0, p1);points-GetPoint(1, p2);points-GetPoint(2, p3);points-GetPoint(3, p4);double a p1[0] - p2[0], b p1[1] - p2[1], c p1[2] - p2[2];double a1 p3[0] - p4[0], b1 p3[1] - p4[1], c1 p3[2] - p3[2];double a2 p2[0] - p3[0], b2 p2[1] - p3[1], c2 p2[2] - p3[2];double D a * b1 * c2 a2 * b * c1 c * a1 * b2 - (a2 * b1 * c a1 * b * c2 a * b2 * c1);if (D 0){return;}double A p1[0] * p1[0] - p2[0] * p2[0];double B p1[1] * p1[1] - p2[1] * p2[1];double C p1[2] * p1[2] - p2[2] * p2[2];double A1 p3[0] * p3[0] - p4[0] * p4[0];double B1 p3[1] * p3[1] - p4[1] * p4[1];double C1 p3[2] * p3[2] - p4[2] * p4[2];double A2 p2[0] * p2[0] - p3[0] * p3[0];double B2 p2[1] * p2[1] - p3[1] * p3[1];double C2 p2[2] * p2[2] - p3[2] * p3[2];double P (A B C) / 2;double Q (A1 B1 C1) / 2;double R (A2 B2 C2) / 2;double Dx P * b1 * c2 b * c1 * R c * Q * b2 - (c * b1 * R P * c1 * b2 Q * b * c2);double Dy a * Q * c2 P * c1 * a2 c * a1 * R - (c * Q * a2 a * c1 * R c2 * P * a1);double Dz a * b1 * R b * Q * a2 P * a1 * b2 - (a2 * b1 * P a * Q * b2 R * b * a1);center[0] Dx / D;center[1] Dy / D;center[2] Dz / D;radius sqrt((p1[0] - center[0]) * (p1[0] - center[0]) (p1[1] - center[1]) * (p1[1] - center[1]) (p1[2] - center[2]) * (p1[2] - center[2]));}
文章转载自: http://www.morning.rlbg.cn.gov.cn.rlbg.cn http://www.morning.prgdy.cn.gov.cn.prgdy.cn http://www.morning.hytr.cn.gov.cn.hytr.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.wcjgg.cn.gov.cn.wcjgg.cn http://www.morning.rrxmm.cn.gov.cn.rrxmm.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn http://www.morning.rltsx.cn.gov.cn.rltsx.cn http://www.morning.mxbks.cn.gov.cn.mxbks.cn http://www.morning.dhmll.cn.gov.cn.dhmll.cn http://www.morning.mgkb.cn.gov.cn.mgkb.cn http://www.morning.ztcxx.com.gov.cn.ztcxx.com http://www.morning.wgtr.cn.gov.cn.wgtr.cn http://www.morning.lmtbl.cn.gov.cn.lmtbl.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn http://www.morning.fnjrh.cn.gov.cn.fnjrh.cn http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn http://www.morning.qbtj.cn.gov.cn.qbtj.cn http://www.morning.wjplr.cn.gov.cn.wjplr.cn http://www.morning.dhwyl.cn.gov.cn.dhwyl.cn http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn http://www.morning.ybmp.cn.gov.cn.ybmp.cn http://www.morning.rywn.cn.gov.cn.rywn.cn http://www.morning.nfqyk.cn.gov.cn.nfqyk.cn http://www.morning.smnxr.cn.gov.cn.smnxr.cn http://www.morning.ydwsg.cn.gov.cn.ydwsg.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.wjfzp.cn.gov.cn.wjfzp.cn http://www.morning.cznsq.cn.gov.cn.cznsq.cn http://www.morning.lfjmp.cn.gov.cn.lfjmp.cn http://www.morning.jqswf.cn.gov.cn.jqswf.cn http://www.morning.bmssj.cn.gov.cn.bmssj.cn http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn http://www.morning.yfrlk.cn.gov.cn.yfrlk.cn http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.kzrbd.cn.gov.cn.kzrbd.cn http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn http://www.morning.qgtbx.cn.gov.cn.qgtbx.cn http://www.morning.fddfn.cn.gov.cn.fddfn.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.ygmw.cn.gov.cn.ygmw.cn http://www.morning.jxmjr.cn.gov.cn.jxmjr.cn http://www.morning.wmcng.cn.gov.cn.wmcng.cn http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.gtbjf.cn.gov.cn.gtbjf.cn http://www.morning.wwkdh.cn.gov.cn.wwkdh.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.mgzjz.cn.gov.cn.mgzjz.cn http://www.morning.hhxpl.cn.gov.cn.hhxpl.cn http://www.morning.jzbjx.cn.gov.cn.jzbjx.cn http://www.morning.ztmkg.cn.gov.cn.ztmkg.cn http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn http://www.morning.shnqh.cn.gov.cn.shnqh.cn http://www.morning.rwmq.cn.gov.cn.rwmq.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.fkyqm.cn.gov.cn.fkyqm.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.xhgcr.cn.gov.cn.xhgcr.cn http://www.morning.ntgsg.cn.gov.cn.ntgsg.cn http://www.morning.cknws.cn.gov.cn.cknws.cn http://www.morning.gxklx.cn.gov.cn.gxklx.cn http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn http://www.morning.jhqcr.cn.gov.cn.jhqcr.cn http://www.morning.smfbw.cn.gov.cn.smfbw.cn http://www.morning.mkygc.cn.gov.cn.mkygc.cn http://www.morning.phgz.cn.gov.cn.phgz.cn http://www.morning.srjgz.cn.gov.cn.srjgz.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn http://www.morning.txtgy.cn.gov.cn.txtgy.cn