我有以下设置:
alt text http://img840.imageshack.us/img840/1376/ex1y.jpg
我知道P1,P2和角度α,现在我如何计算P3的坐标? (注意:P3与原点P1和半径P1P2在同一圆上)
蓝线表示坐标系
答案 0 :(得分:7)
上面从维基百科所述的公式可用于旋转矢量P1-> P2(V12)。
V12 = [0, -100]
旋转时(注意图中α为-30度),矢量P1-> P3变为
x' = V12(x)*cos(α) - V12(y)*sin(α) = 0*cos(-30) - (-100)*sin(-30) = -50
y' = V12(x)*sin(α) + V12(y)*cos(α) = 0*sin(-30) + (-100)*cos(-30) = -86.6
当用点P1平移时,P3的坐标变为
[x, y] = [-50+150, -86.6+210] = [100, 123.4]
答案 1 :(得分:4)
如果您将矢量P1-> P2旋转约为P1的α,您将得到矢量P1-> P3。然后知道P1你可以得到P3。
关于原点的旋转的基本方程是:
[ cos(α) -sin(α) ] [x]
[ sin(α) cos(α) ] [y]
你可能不得不用你的坐标系来改变这些标志,但我总是不得不通过反复试验来解决它,因为我永远不会记得!
不要忘记 - 正如S.C.Madsen所说sin
和cos
期望角度是弧度而非度数。
Wikipeida关于rotation的文章提供了更多信息。
答案 2 :(得分:2)
Complex_To_Vector(Vector_To_Complex(P_2 - P_1)* e i * alpha )+ P_1。
(只是为了好玩 - 不是一个严肃的建议)
答案 3 :(得分:1)
设r是从P1到P2的距离。然后P3在P1的负x方向上位于r * sin(α),并且在P1的负y方向上位于r * cos(α)。有关详细信息,请参阅Wikipedia on trigonometry。因此P3具有坐标P1 - (r * sin(α),r * cos(α))。
旁注:很遗憾因为MO没有LaTeX的支持。
答案 4 :(得分:1)
在调用sin和cos时,角度必须是弧度,你说的角度alpha是30,所以它似乎是以度为单位。除此之外,我认为'gspr'和'ChrisF'就如何解决这个问题给出了很好的建议。