将平面变换到另一个坐标系
Transform plane to another coordinate system
我有一个相机坐标系,由相对于世界坐标系的旋转矩阵 R
和平移 T
定义。平面由法线 N
和其上的点 P
在相机坐标中定义。我想在世界坐标系中找到平面的方程。目前我做的是:
Transform P to world system by (P + T)
Transform N to world system by R.N
然后我使用转换后的 P
和 N
找到计划的等式。我有两个问题:
1)如果我们取相机中心到相机坐标系平面的垂直距离,那应该等于相机位置到世界坐标系平面的垂直距离吧?
2) 假设以上为真,我当前的转换给出了不正确的结果,例如 N=[1,2,1]
和 P=[1,4,0]
平面(在相机中)和 R = (90, 0, 90)
在 XYZ 欧拉和 T =[3, 3, 9]
我做错了什么吗?谢谢
对于行向量(对于列向量只需转置它)的绕 z 轴的纯旋转矩阵将如下所示
cosθ sinθ 0
-sinθ cosθ 0
0 0 1
绕x轴的旋转用下面的纯旋转矩阵表示
1 0 0
0 cosα sinα
0 -sinα cosα
角度应该以弧度为单位,除非您使用可以正确评估三角函数的度数。
要改变矢量的基础,你连接旋转 R = RxRz (顺序很重要)然后乘以你的结果向量 V' = VR
要翻译您的观点,您只需应用相同的旋转然后进行翻译 P' = PR + T
我有一个相机坐标系,由相对于世界坐标系的旋转矩阵 R
和平移 T
定义。平面由法线 N
和其上的点 P
在相机坐标中定义。我想在世界坐标系中找到平面的方程。目前我做的是:
Transform P to world system by (P + T)
Transform N to world system by R.N
然后我使用转换后的 P
和 N
找到计划的等式。我有两个问题:
1)如果我们取相机中心到相机坐标系平面的垂直距离,那应该等于相机位置到世界坐标系平面的垂直距离吧?
2) 假设以上为真,我当前的转换给出了不正确的结果,例如 N=[1,2,1]
和 P=[1,4,0]
平面(在相机中)和 R = (90, 0, 90)
在 XYZ 欧拉和 T =[3, 3, 9]
我做错了什么吗?谢谢
对于行向量(对于列向量只需转置它)的绕 z 轴的纯旋转矩阵将如下所示
cosθ sinθ 0
-sinθ cosθ 0
0 0 1
绕x轴的旋转用下面的纯旋转矩阵表示
1 0 0
0 cosα sinα
0 -sinα cosα
角度应该以弧度为单位,除非您使用可以正确评估三角函数的度数。
要改变矢量的基础,你连接旋转 R = RxRz (顺序很重要)然后乘以你的结果向量 V' = VR
要翻译您的观点,您只需应用相同的旋转然后进行翻译 P' = PR + T