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

news2024/11/27 10:29:21

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

场景

现有多个空间平面包络一个柱体,从圆柱顶端俯视如图所示:
在这里插入图片描述
中心位置为圆柱实际所在位置。现在已知这些平面的参数(每个平面的方程均为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

求解效果

初始中轴点求解效果:

在这里插入图片描述
可见,初始点位在平面包络的内部空间,可以进行下一步精化、半径求解。

最终的可视化结果如图:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1342462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云oss无法访问.apk或者.ipa的文件

-- 有意栽花花不发 无心插柳柳成荫 0048-00000201 更新时间:2023-07-19 10:31:16 问题描述 在2023年08月15日后为Bucket开通传输加速,如果通过OSS传输加速域名访问其中后缀为.apk或者.ipa的文件,服务器返回400错误。 问题原因 出于安全…

分布式IO在工业自动化中的应用

传统的自动化产线及物流系统主要是利用PLC来处理数据,并将这些数据保存在PC当中。但是随着互联网技术的迅速发展,越来越多的系统集成商利用分布式IO模块,实现从控制器到自动化最底层之间的IO通信。 分布式IO在工业自动化中的应用 分布式IO是用…

再次被gpt震撼到了,md转json

1.md内容来自excel 参考链接: https://chat.xutongbao.top/

什么是计算机视觉

计算机视觉(Computer Vision)是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说,计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标,计算机视觉结合了图像处理、机器学习、模…

低代码平台搭建ERP系统 低代码快速开发灵活的ERP

随着数字化时代的到来,企业迫切需要高效、灵活的ERP系统来提高运营效率。在这一背景下,白码低代码平台成为了企业实现数字化转型的首选工具。本文将介绍低代码开发ERP的概念,并以白码低代码平台为例,探讨其在企业数字化转型中的重…

解决jenkins、git拉取代码仓库失败Please make sure you have the correct access rights

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/n…

spellman高压发生器电源维修XRV450PN4500 NY1059

Spellman高压电源X射线发生器维修XRV系列常见维修型号:XRV160N1800, XRV160N3000, XRV160P4000, XRV160P6000/208V 3o, XRV225N3000, XRV225N6000/208V 3o, XRV225P4000, XRV350PN4500, XRV450PN4500。 Spellman所拥有的变频器架构可以使高压电源获得高利用率的效率…

小C说历史(人物介绍第二篇):Unix之父 C语言之父 伟大的Ken Thompson 肯·汤普森

Unix之父 C语言之父 伟大的Ken Thompson 肯汤普森 Unix之父——肯•汤普森(Ken Thompson)被称作“世界上最杰出的程序员”,他自学编程,26岁创造Unix,改写了计算机操作系统的历史,并在古稀之年成为Go语言的共…

win10 telnet服务开启教程

win10 telnet服务开启教程 1、打开控制面板,选择【程序和功能】 2、点击【启用或关闭Windows功能】 3、勾选【Telnet 客户端】,然后点击确定。

【译文】IEEE白皮书 6G 太赫兹技术的基本原理 2023版

第一章 简介 太赫兹波是介于微波和光波之间的光谱区域,频率从 0.1THz ~ 10THz 之间,波长在 3mm ~ 30μm 之间。提供大块连续的频带范围以满足对 Tbit/s 内极高数据传输速率的需求,使该区域成为下一代无线通信(6G)的重…

外汇天眼:Valdas Dapkus和Tradewale因零售外汇欺诈计划被判支付280万美元

美国衍生品市场监管机构商品期货交易委员会(CFTC)宣布,美国新泽西地区法院于11月28日发布了对位于伊利诺伊州的Valdas Dapkus的最终裁定默认令。5月4日,法院对Dapkus控制的两家实体——Tradewale LLC和Tradewale Managed Fund发布…

电子工程师如何接私活赚外快?

对电子工程师来说,利用业余时间接私活是个很常见的技术,不仅可以赚取额外收入,也能提升巩固技术,可以说国内十个工程师,必有五个在接私活养家糊口,如果第一次接私活,该如何做? 很多工…

虚拟机迁移技术原理与应用

虚拟机迁移技术主要应用于两种场景: 第一种,随着现在虚拟化的发展,传统it架构的物理机需迁移到虚拟机上,实现负载均衡、资源优化等目的。 第二种,将虚拟机从一个虚拟化平台迁移到另一个虚拟化平台,可以是…

Django 文件上传(十二)

当 Django 处理文件上传时,文件数据最终会被放置在 request.FILES 。 查看文档:文件上传 | Django 文档 | Django Django工程如下: 创建本地存储目录 在static/应用目录下创建uploads目录用于存储接收上传的文件 在settings.py 配置静态目…

Android Context在四大组件及Application中的表现

文章目录 Android Context在四大组件及Application中的表现Context是什么Context源码Activity流程分析Service流程分析BroadcastReceiver流程分析ContentProvider流程分析Application流程分析 Android Context在四大组件及Application中的表现 Context是什么 Context可以理解…

Python-动态柱状图可视化

柱状图 1.基础柱状图1.1通过Bar构建基础柱状图1.2反转x轴,y轴1.3数值标签在右侧1.4总结 2.基础时间柱状图2.1掌握基础的时间线配置动态图表2.2创建时间线2.3自动播放2.4时间线设置主题2.5总结 3.GDP动态柱状图绘制3.1掌握列表的sort方法并配合配合lambda匿名函数完成…

NAS上使用docker+postgresql搭建私有云笔记joplin全终端适配

文章目录 前置条件步骤1:获取joplin的镜像步骤2:配置容器参数2.1 端口设置2.2环境变量设置(配置数据库) 步骤3. 启动服务端步骤4. 配置客户端4.1 下载客户端4.2 配置客户端同步 步骤5. 外网访问插件安装 通常我们都会用到印象笔记…

代码随想录刷题笔记(DAY2)

今日总结:今天在学 vue 做项目,学校还有很多作业要完成,熬到现在写完了三道题,有点太晚了,最后一道题的题解明天早起补上。(补上了) Day 2 01. 有序数组的平方(No. 977)…

C++ //例13.14 将一批数据以二进制形式存放在磁盘文件中。例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。

C程序设计 (第三版) 谭浩强 例13.14 例13.15 例13.14 将一批数据以二进制形式存放在磁盘文件中。 例13.15 将刚才以二进制形式存放在磁盘文件中的数据读入内存并在显示器上显示。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。…

零基础学Java第二天

复习回顾: 1.dos命令 dir 显示当前文件夹下面的所有的文件和文件夹 cd 切换目录的 mkdir 创建文件夹的 rd 删除文件夹的 del 删除文件 D: 切换盘符 cls 清屏 2.书写Java代码换行打印《静夜诗》这首古诗 class Demo1 { …