我試圖將沿着一條直線(2點)的運動轉換爲沿着六角形路徑的運動,我嘗試了不同的公式並且沒有工作。查找六角形路徑的座標
我想找出我希望有人提出一個更好的公式,給我的座標中移動的長六角路徑基於A和B. P,Q,R,M的座標。
我試圖將沿着一條直線(2點)的運動轉換爲沿着六角形路徑的運動,我嘗試了不同的公式並且沒有工作。查找六角形路徑的座標
我想找出我希望有人提出一個更好的公式,給我的座標中移動的長六角路徑基於A和B. P,Q,R,M的座標。
如果您熟悉複數(並假設這是一個正六邊形),
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)
如果您將您的六角形想象爲由向量組成 - 具有幅度(距離)和方向(逆時針旋轉的從西向東地平線的角度)的線段,則這更容易概念化。
將矢量從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乘以幅度,確保在需要弧度時使用弧度,如果是度數,則使用弧度)
老實說,我不明白你想要完成什麼,但是如果你畫一張圖片並利用它來解釋這個問題,那真的會有幫助(或許你自己)。 – 2013-04-11 20:42:06
你沒有鏈接到你得到「這個公式」的未命名源代碼,所以你的問題的大部分是不連貫的。但是,不應該只是添加鏈接,而應該爲問題本身添加可讀的解釋。 – comingstorm 2013-04-11 21:34:08
我附加了一個圖像更清晰。 – Lara 2013-04-11 23:03:01