多平面包络的圆柱体参数估计

这篇具有很好参考价值的文章主要介绍了多平面包络的圆柱体参数估计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

多平面包络的圆柱体参数估计

场景

现有多个空间平面包络一个柱体,从圆柱顶端俯视如图所示:
多平面包络的圆柱体参数估计,高等数学,算法,数学
中心位置为圆柱实际所在位置。现在已知这些平面的参数(每个平面的方程均为ax+by+cz+d=0形式, 参数为a,b,c,d),希望求解它们包络的这个圆柱的几何信息。

分析

三维空间中,圆柱的几何信息有两类表达方式:

  1. 圆柱中轴的方向向量 ( u , v , 1 ) (u,v,1) (u,v,1)和中轴上一点坐标 ( x , y , z ) (x,y,z) (x,y,z),以及半径r
  2. 圆柱顶面中心点坐标 ( x 1 , y 1 , z 1 ) (x_1,y_1,z_1) (x1,y1,z1),底面中心点坐标 ( x 2 , y 2 , z 2 ) (x_2,y_2,z_2) (x2,y2,z2),以及半径r
    前一种表达方式具有最少的参数量,描述了一个无限高度的空间圆柱体;后一种表达方式多了一个参数,本质上限定了圆柱顶面和底面的位置。

已知的几何约束包括:

  1. 中轴垂直于所有平面的法向量。
  2. 中轴必定被所有平面包围在内部。
  3. 中轴上任意一点到各平面的距离相等且非0,这个距离就是半径r

求解方案

多平面包络圆柱体只能是在局部范围内包络。受计算机数值精度影响,很难使所有平面完美相切同一圆柱体,因而很可能出现在不同的Z坐标处所包络的圆柱体半径不同的情况。此外,如果没有Z坐标,我们只能得到空间直线的方程,实际上没有太大用处,不易基于它来求半径。因此一个关键要素就是:先验的Z值。

根据应用场景,我们假定有先验估算的z坐标最小值和最大值。
由于没有任何一个平面过中轴,而是仅仅与圆柱体表面相切,中轴上点的位置无法直接求解。可以考虑先求解中轴的方向,再求中轴上一点的坐标和半径。

求解方法一

  1. 由于已知所有平面的参数a、b、c、d,可以直接求出中轴方向:当仅有两个不相交平面时,即可用它们法向量的叉积直接得到中轴方向;平面数量更多时,需要使用最小二乘法求解最佳的中轴方向。
  2. 先取出圆柱体中轴上一点的z坐标近似值 z 0 z_0 z0
  3. 将该 z 0 z_0 z0代入所有平面方程,求解中轴上z坐标为 z 0 z_0 z0的一点的x,y坐标近似值。由于中轴在多平面包络的内部,因此只需将平面两两相交的交点重心作为x,y坐标近似值 ( x ′ , y ′ ) (x',y') (x,y)
  4. x,y坐标精化和半径r求解。这一步利用约束3,列出约束条件方程:
    ∣ ∣ a x 0 + b y 0 + c z 0 + d ∣ a 2 + b 2 + c 2 − r ∣ = 0 |\frac{|ax_0+by_0+cz_0+d|}{\sqrt{a^2+b^2+c^2}}-r|=0 a2+b2+c2 ax0+by0+cz0+dr=0
    其中 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0)是待求的中轴点坐标( z 0 z_0 z0已知)。由于带有绝对值符号,求解存在一定困难,可以考虑使用下面的形式:
    ( a x 0 + b y 0 + c z 0 + d ) 2 a 2 + b 2 + c 2 − r 2 = 0 \frac{(ax_0+by_0+cz_0+d)^2}{a^2+b^2+c^2}-r^2=0 a2+b2+c2(ax0+by0+cz0+d)2r2=0
    求解的初始值使用近似值 ( x ′ , y ′ ) (x',y') (x,y),半径取正实数即可。
  5. 近似值 ( x ′ , y ′ ) (x',y') (x,y)偏差不太大时,即可得到较好的解:中轴上一点 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0,y0,z0),中轴方向和半径 r r r

注意到,中轴方向的求解和半径、中轴点求解是分离的。由此产生解法二

  1. 取到圆柱体的z坐标范围 z m i n , z m a x z_{min},z_{max} zmin,zmax
  2. z m i n z_{min} zmin代入所有平面方程,求解中轴上z坐标为 z m i n z_{min} zmin的一点的x,y坐标近似值。
  3. z m a x z_{max} zmax代入所有平面方程,求解中轴上z坐标为 z m a x z_{max} zmax的一点的x,y坐标近似值。
  4. z m i n , z m a x z_{min},z_{max} zmin,zmax对应的x,y坐标精化和半径r求解。求解的初始值使用上一步得到的近似值,半径取正实数即可。为使求解更严谨,可以将两组方程列在一起求解唯一的r。
  5. 近似值与真实值偏差不太大时,可得到较好的解:中轴两点 ( x m i n , y m i n , z m i n ) (x_{min},y_{min},z_{min}) (xmin,ymin,zmin) ( x m a x , y m a x , z m a x ) (x_{max},y_{max},z_{max}) (xmax,ymax,zmax)和半径 r r r

求解效果

初始中轴点求解效果:

多平面包络的圆柱体参数估计,高等数学,算法,数学
可见,初始点位在平面包络的内部空间,可以进行下一步精化、半径求解。

最终的可视化结果如图:
多平面包络的圆柱体参数估计,高等数学,算法,数学文章来源地址https://www.toymoban.com/news/detail-770859.html

到了这里,关于多平面包络的圆柱体参数估计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包