【发布时间】:2014-05-21 07:37:18
【问题描述】:
我的问题很难解释,所以请多多包涵。我有一个带有 Forward、Right 和 Up 向量的随机对象。现在,想象一下这个特定的对象在所有三个轴上随机旋转。我将如何找到一个点相对于新旋转对象的真实坐标?
示例:
例如,假设彩色轴是“真实”轴,我将如何在给定其 Forward、Right 和 Up 向量(显然还有它的坐标)的情况下找到立方体的最前角。
我能想到的最好的方法是:
x=cube.x+pointToFind.x*(forward.x+right.x+up.x)
y=cube.y+pointToFind.y*(forward.y+right.y+up.y)
z=cube.z+pointToFind.z*(forward.z+right.z+up.z)
这有时会奏效,但由于明显的原因,当点的坐标之一为 0 时会失败。
简而言之,我不知道该怎么做,或者真的不知道如何准确地描述我正在尝试做的事情......这不是编程问题,而是一般数学问题。
【问题讨论】:
-
如果你了解向量、矩阵和坐标变换,这是一个简单的问题:en.wikipedia.org/wiki/Transformation_matrix
-
好吧,我没有使用旋转矩阵来执行旋转,因为这仅限于万向节锁(至少根据我的经验)。我只是使用旧时尚矢量旋转。主要问题是,除了基础知识之外,我对这些都不太了解。
-
不限于云台锁。这些是一般的想法。
标签: math vector 3d coordinate-systems