2013-04-11 172 views
1

我試圖將沿着一條直線(2點)的運動轉換爲沿着六角形路徑的運動,我嘗試了不同的公式並且沒有工作。查找六角形路徑的座標

enter image description here

我想找出我希望有人提出一個更好的公式,給我的座標中移動的長六角路徑基於A和B. P,Q,R,M的座標。

+3

老實說,我不明白你想要完成什麼,但是如果你畫一張圖片並利用它來解釋這個問題,那真的會有幫助(或許你自己)。 – 2013-04-11 20:42:06

+1

你沒有鏈接到你得到「這個公式」的未命名源代碼,所以你的問題的大部分是不連貫的。但是,不應該只是添加鏈接,而應該爲問題本身添加可讀的解釋。 – comingstorm 2013-04-11 21:34:08

+0

我附加了一個圖像更清晰。 – Lara 2013-04-11 23:03:01

回答

5

如果您熟悉複數(並假設這是一個正六邊形),

D = B - A 
P = A + D(1 + sqrt(3)i)/4 
Q = A + D(3 + sqrt(3)i)/4 
R = A + D(1 - sqrt(3)i)/4 
M = A + D(3 - sqrt(3)i)/4 

編輯:

如果熟悉複雜的數字,我們不應該試圖在這裏使用它們。它們是一個很棒的工具,但起初並不容易掌握。讓我們做的很長的路要走:

A =(A X,A ÿ
B =(B X,B ÿ
d = B - A =(d X,d ÿ)其中d X = A X -B X和d ÿ = A ÿ -B ý
P =(A X + d X/4 - SQRT(3)d ý/4,A ÿ + d ý/4 + SQRT(3) d X/4)
Q =(A X + 3D X/4 - SQRT(3)d ý/4,A ÿ + 3D ý/4 + SQRT(3 )D ×/4)
R =(A X + d X/4 + SQRT(3)d ý/4,A ÿ + d ý/4 - SQRT(3) d X/4)
M =(A X + 3D X/4 + SQRT(3)d ý/4,A ÿ + 3D ý/4 - SQRT(3 )D x/4)

+0

感謝您的回覆。所以D將是D = Bx-Ax + By-Ay?我是什麼?這是什麼意思?? – Lara 2013-04-12 01:37:05

+0

謝謝親愛的,這非常有幫助 – Lara 2013-04-18 01:34:18

0

如果您將您的六角形想象爲由向量組成 - 具有幅度(距離)和方向(逆時針旋轉的從西向東地平線的角度)的線段,則這更容易概念化。

將矢量從A調用到B D.如果使用一些三角函數來計算六邊形的幾何形狀,D的大小是六邊形邊長的兩倍。因此,我們可以使用它來構建與其他六邊形一樣大的矢量,從而得到六邊形的其他點。

取向量D,將其大小減半,旋轉60度ccw並將此新向量添加到A的位置。這給你P.

做同樣的事情,但旋轉它60度CW,並添加到A的位置。這給你R.

類似地,Q是向量D減半,旋轉60度CW,倒置並添加到B的位置。最後,M是向量D減半,旋轉60度ccw,倒置並添加到B的位置。 (要將矢量轉換爲移動的x距離並移動y距離,分別將角度的cos和角度的sin乘以幅度,確保在需要弧度時使用弧度,如果是度數,則使用弧度)