Math 计算坐标系中长方体的封闭垂直俯仰角

Math 计算坐标系中长方体的封闭垂直俯仰角,math,3d,projection,quaternions,angle,Math,3d,Projection,Quaternions,Angle,给定一个坐标系(绿色-可能位于激光传感器的中心)和一个尺寸为l、w、h、中心位置为c(c_x、c_y、c_z)的盒子,以及它在该坐标系中作为四元数(q_x、q_y、q_z、q_w)的方向,我想找到最小的封闭节角(红色-从坐标系的角度)一个盒子的β_max和β_min 这个问题似乎很棘手,因为我如何从坐标系的角度知道哪个是“最高点和最低点”?它显然取决于盒子的方向和尺寸:它可能是盒子的边缘,也可能只是角落,但我没有数学方法来表达它。第一个盒子顶点有相对于盒子中心的坐标(-w/2,-h/2,-l/2

给定一个坐标系(绿色-可能位于激光传感器的中心)和一个尺寸为l、w、h、中心位置为c(c_x、c_y、c_z)的盒子,以及它在该坐标系中作为四元数(q_x、q_y、q_z、q_w)的方向,我想找到最小的封闭节角(红色-从坐标系的角度)一个盒子的β_max和β_min


这个问题似乎很棘手,因为我如何从坐标系的角度知道哪个是“最高点和最低点”?它显然取决于盒子的方向和尺寸:它可能是盒子的边缘,也可能只是角落,但我没有数学方法来表达它。

第一个盒子顶点有相对于盒子中心的坐标
(-w/2,-h/2,-l/2)

使用四元数旋转此点,将结果添加到向量
(cx,cy,cz)
,获取向量
V0=(v0x,v0y,v0z)

使用矢量长度,该矢量和OZ轴之间的角度为(通过所谓的方向余弦)

这个向量和氧平面之间的角度(据我所知,你需要这个角度):

计算所有长方体顶点的角度
Bi
(在第一行公式中更改符号),并选择最大值和最小值

A0 = acos(V0.dot.(0,0,1) / len(V0)) = acos(v0z / len(V0))
B0 = Pi/2 - A0