2013-04-11 115 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乘以幅度,确保在需要弧度时使用弧度,如果是度数,则使用弧度)