繁体   English   中英

如何将世界坐标转换为相机坐标

[英]How to convert from world coordinates to camera coordinates

在世界坐标系中,存在旋转值为rx1,ry1,rz1和 position 值为px1,py1,pz1

类似地,世界坐标系中有一个相机,其旋转值为rx2,ry2,rz2和 position 值为px2,py2,pz2

rx1,ry1,rz1,px1,py1,pz1可以用什么公式转换到相机坐标系?

相机的向上矢量是 Y 轴,始终朝向世界原点附近的 object。

相机和 model 应该在如下 gif 图像所示的范围内移动。 在此处输入图像描述

我想使用 Python 进行计算,但我愿意接受任何其他答案,包括其他 Unity C# 或数学陈述。

欢迎您在四元数或矩阵而不是欧拉角中进行评论。

在 position 的 Unity c# 中,您可以简单地使用内置的

var localPosition = camera.transform.InverseTransformPoint(theObject.transform.position);

对于轮换,您可以使用

var localRotation = Quaternion.Inverse(camera.transform.rotation) * theObject.transform.rotation;

这应该为您提供camera坐标空间中的localPositionlocalRotation

暂无
暂无

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

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