繁体   English   中英

定义边界框的坐标

[英]Define coordinates of bounding box

我有一个3d场景,其中一侧的坐标为Xa,Ya,Za,另一侧的坐标为Xb,Yb,Zb: 在此处输入图片说明

如何确定此线的边界框的3d坐标(Xa1,Ya1,Za1,Xa2,... Zb4),除了上面的数据外,还具有该框的宽度和高度以及其轴上的旋转角度: 在此处输入图片说明

谢谢

本质上,您要做的是建立一个合适的正交坐标基,这样一个基矢量沿着给定的线指向,而另两个矢量正交于该点。 实际选择取决于您要提及的角度,但是您需要一些参考方向来确定角度零。

通常,我会说让a为从一个点到另一个点的标准化(到长度1)向量。 v为某个固定参考方向,例如“向上”。 确保av是独立的,即指向不同的方向。 计算叉积a × v ,归一化为单位长度,并将其称为b 如果v向上,它将是与av都正交的向量,因此,它类似于在水平面上远离直线的方向。 计算c = a × b ,这将是第三基矢量,与ab正交,并且已经存在单位长度。

现在取任一端点,并在其上加上± w / 2∙ b ± h / 2∙ c ,其中wh是边界框的尺寸。 这为您提供了边界框的8个角点。 如果要围绕直线旋转框,请对向量bc进行二维旋转:

b' = cos(θ)∙ b + sin(θ)∙ c
c' = cos(θ)∙ c − sin(θ)∙ b

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM