2016-12-15 49 views
0

我需要將兩條線a(A,B)和b(C,D)對齊,使它們彼此平行。旋轉點P可以在線外,這樣兩條線將共享相同的旋轉點。 Python或Geogebra解決方案是首選。在Geogebra的情況下,CAS操作很好。解決方案即。旋轉角度應爲度數並且重新定位線b(C,D)新座標c(E,F)。將線a平行於與線b相關的旋轉點p

提供例證闡明該問題:線

dAB = (B.X - A.X, B.Y - A.Y) 
dCD = (D.X - C.X, D.Y - C.Y) 

2查找角度需要做出線平行使用標量和叉積的

Parallel lines

+0

這是什麼意思:'線性每個other' - 平行?很高興看到插圖。 – MBo

+0

是的,平行。我需要糾正這個詞並設置一個數字。 – MarkokraM

+0

添加插圖 – MarkokraM

回答

1

1獲得方向矢量

Theta = Math.ArcTan2(Cross(dAB, dCD), Dot(dAB, dCD)) = 
     Math.ArcTan2(dAB.X * dCD.Y - dAB.Y * dCD.X, dAB.X * dCD.X + dAB.Y * dCD.Y) 

3旋轉點C和D大約中心P(在你圖象旋轉的段是AB,在這種情況下使用的負角度-Theta

C'.X = P.X + (C.X - P.X) * Cos(Theta) - (C.Y - P.Y) * Sin(Theta) 
C'.Y = P.Y + (C.X - P.X) * Sin(Theta) + (C.Y - P.Y) * Cos(Theta) 
the same for D 
+0

感謝您將交叉點和點積分解爲點展示。這在GeoGebra中也很有魅力。我總是忘記問這個問題,但是你爲了解決這個問題而學習了什麼? – MarkokraM

+0

第3段的矢量代數/幾何和仿射變換的基礎知識 – MBo

相關問題