如何找到相对于已旋转点的位置?我的想法是,我在某个位置旋转一个实体,并且需要能够找到相对于该实体旋转的位置,这样实体上方相对于其旋转的10个单位不同于10个单位直接在实体之上。希望这个图表可以让你知道我的意思:
注意:我使用纯Javascript在<canvas>
标记中执行此操作。
另请注意:我只是完成代数,并且只做了一点三角法和一些几何,所以请你的解释相对清楚。 Sin,cos和tangent只是刚刚开始有意义,我不得不在前几天查看弧度的概念,以便使用<canvas>
的旋转功能(感谢维基百科!)。
还要注意:我自己试过这个(谷歌,SO,其他地方),但不知道正确的条款,我无法找到任何东西。我相信这一定相当简单,但对我来说也可能是希腊语。
答案 0 :(得分:1)
如果你所寻找的只是d
点的(x,y)
个点,而θ
点的角度为(x + d*cos(π/2-θ), y + d*sin(π/2-θ))
,则相对于该点的角度为其原点在顺时针方向,从正y轴,该点由{{1}}
答案 1 :(得分:0)
如果您知道如何旋转方块,则知道如何旋转矢量。
您对square (25,25)
所做的工作与vector(25,15)
答案 2 :(得分:0)
你可以用矢量和矩阵来做。让我们说25,10的方向是你的立方体的前向矢量。所以你可以将旋转矩阵应用到这个向量,即将这个向量乘以旋转矩阵,这是旋转你需要的度数。这将返回你的相对位置。希望它很清楚。我不是JavaScript专家。但我相信你可以使用一些Vector math API。 您必须执行以下步骤:
在旋转之前计算从立方体位置到所需偏移的矢量。
通过一些旋转计算旋转矩阵。
通过旋转矩阵将该向量相乘以获得新的旋转向量。
我找到了this JavaScript Vector math lib。看一下Matrix对象。它有一个矢量乘法的方法。