我希望这是提出这个问题的正确位置和这个一样 https://stackoverflow.com/questions/3035590/bank-angle-from-up-vector-and-look-at-vector,但表示为纯数学而不是图形(至少我希望我正确地将问题转换为数学)。
考虑到:
- 两个正交向量:Up (ux, uy, uz) 和 Look (lx, ly, lz)
- 垂直于 Look 的平面 P(因此包括 Up)
- Y1 是 Y(垂直轴)沿 P 的投影
问题:Y1 与 Up 之间的角度值是多少?
数学家们都会同意,这是一个非常基本的问题,但我已经挠头至少两周了,无法想象如何将 Y 投影到 P 上……也许现在太老了,无法找到学校练习的解决方案。
我正在寻找三角解,而不是使用矩阵的解。谢谢。
Edit:我发现我需要确定相对于旋转轴的角度的符号,该旋转轴必须是“Look”。我在链接的问题上发布了最终代码(请参阅上面的链接)。感谢那些提供帮助的人。我很感激你的时间。
我只是在纸上做这件事。我希望这是对的。
假设 Up 和 Look 已标准化,即长度为 1。假设平面 P 包含原点,L 为其法线。 Y 为 (0, 1, 0)
要将 Y 投影到 P 上,求其到 P 的距离...
d = Y dot L = ly
...然后将法线缩放-d以获得Y1(即Y在P上的投影)
Y1 = (lx * ly, ly * ly, lz * ly)
现在标准化 Y1,即按 (1 / 长度) 缩放。如果它的长度是 0 那么你就不走运了。
Y1 和 Up 的点积 = 角度的余弦。所以
angle = acos(Y1 dot Up)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)