0

如何找到相对于已旋转点的位置?这个想法是,我在某个位置旋转一个实体,并且需要能够找到相对于该实体旋转的位置,以便相对于其旋转在实体上方 10 个单位与直接在上方10 个单位不同实体。希望这张图能让你明白我的意思:

在此处输入图像描述

注意:我在<canvas>标签中使用纯 Javascript 执行此操作。

另请注意:我刚刚完成代数,并且只做了一点三角学和一些几何学,所以请让你的解释相对清楚。sin、cos 和 tangent 才刚刚开始有意义,前几天我不得不自己查找弧度的概念,以便使用<canvas>' 的旋转函数(感谢维基百科!)。

另请注意:我曾尝试自己查找此内容(Google,SO,其他地方),但不知道正确的条款,我找不到任何东西。我敢肯定这一定很简单,但对我来说也可能是希腊语。

4

3 回答 3

1

如果您要查找的只是一个点,该点与一个角度的点为d单位,其中该角度相对于该点作为其原点,沿顺时针方向,从正 y 轴,该点由下式给出(x,y)θ(x + d*cos(π/2-θ), y + d*sin(π/2-θ))

于 2012-07-14T17:45:27.090 回答
0

如果你知道如何旋转正方形,你就会知道如何旋转矢量。你用做什么square (25,25),用 做什么vector(25,15)

于 2012-07-14T17:44:35.440 回答
0

你可以用向量和矩阵来做。假设25,10的方向是你的立方体的前向向量。所以你可以将旋转矩阵应用到这个向量上,也就是将这个向量乘以旋转矩阵,旋转量为你需要的学位。这将返回你的相对位置。希望很清楚。我不是 JavaScript 专家。但我相信你可以使用一些向量数学 API。您必须执行以下步骤:

在旋转之前计算从立方体位置到所需偏移量的向量。

计算一些旋转的旋转矩阵。

将该向量乘以旋转矩阵得到新的旋转向量。

我找到了这个 JavaScript Vector math lib。看看 Matrix 对象。它有一个向量乘法的方法。

于 2012-07-14T17:45:57.737 回答