gpt4 book ai didi

c# - unity计算相对于主摄像头的四元数

转载 作者:行者123 更新时间:2023-11-30 16:37:45 25 4
gpt4 key购买 nike

我有 GameObject 对象和 Camera.main 的世界坐标,我想计算相对于 Camera.main 的位置和旋转。位置很简单:

object.transform.position - Camera.main.transform.position

如何计算给定物体相对于相机的四元数?

我可以设置 object.transform.parent = Camera.main.transform 并读取 localRotation,但是有没有更优雅的解决方案。

最佳答案

根据定义:

obj.transform.parent.rotation * obj.transform.localrotation = obj.transform.rotation

因此,另一种表达问题的方式是您想要找到四元数 q这样 Camera.main.transform.rotation * q == object.transform.rotation .所以,你可以用代数方法解决这个问题:

                        cam_rotation * q = obj_rotation  
inverse(cam_rotation) * cam_rotation * q = inverse(cam_rotation) * obj_rotation
q = inverse(cam_rotation) * obj_rotation

统一计算:

Quaternion q = Quaternion.Inverse(Camera.main.transform.rotation) 
* object.transform.rotation;

关于c# - unity计算相对于主摄像头的四元数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57153855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com