Algorithm 六角路径坐标的求法

Algorithm 六角路径坐标的求法,algorithm,math,graphics,linear-algebra,graph-algorithm,Algorithm,Math,Graphics,Linear Algebra,Graph Algorithm,我试着把一条直线上的运动(2点)转换成六边形路径上的运动,我尝试了不同的公式,但没有成功 我想找出基于A和B的p,Q,R,M的坐标。 我希望有人能提出一个更好的公式,给我一个移动长六边形路径的坐标。如果你熟悉复数(假设这是一个正六边形) 编辑: 如果您不熟悉复数,我们不应该在这里尝试使用它们。它们是一个很好的工具,但一开始并不容易掌握。让我们用很长的路来做: A=(Ax,Ay) B=(Bx,By) D=B-A=(Dx,Dy),其中Dx=Ax Bx,Dy=Ay By P=(Ax+Dx/4-sqr

我试着把一条直线上的运动(2点)转换成六边形路径上的运动,我尝试了不同的公式,但没有成功

我想找出基于A和B的p,Q,R,M的坐标。
我希望有人能提出一个更好的公式,给我一个移动长六边形路径的坐标。

如果你熟悉复数(假设这是一个正六边形)

编辑:

如果您不熟悉复数,我们不应该在这里尝试使用它们。它们是一个很好的工具,但一开始并不容易掌握。让我们用很长的路来做:

A=(Ax,Ay)
B=(Bx,By)
D=B-A=(Dx,Dy),其中Dx=Ax Bx,Dy=Ay By
P=(Ax+Dx/4-sqrt(3)Dy/4,Ay+Dy/4+sqrt(3)Dx/4)
Q=(Ax+3Dx/4-sqrt(3)Dy/4,Ay+3Dy/4+sqrt(3)Dx/4)
R=(Ax+Dx/4+sqrt(3)Dy/4,Ay+Dy/4-sqrt(3)Dx/4)

M=(Ax+3Dx/4+sqrt(3)Dy/4,Ay+3Dy/4-sqrt(3)Dx/4)
如果您熟悉复数(并假设这是一个正六边形)

编辑:

如果您不熟悉复数,我们不应该在这里尝试使用它们。它们是一个很好的工具,但一开始并不容易掌握。让我们用很长的路来做:

A=(Ax,Ay)
B=(Bx,By)
D=B-A=(Dx,Dy),其中Dx=Ax Bx,Dy=Ay By
P=(Ax+Dx/4-sqrt(3)Dy/4,Ay+Dy/4+sqrt(3)Dx/4)
Q=(Ax+3Dx/4-sqrt(3)Dy/4,Ay+3Dy/4+sqrt(3)Dx/4)
R=(Ax+Dx/4+sqrt(3)Dy/4,Ay+Dy/4-sqrt(3)Dx/4)

M=(Ax+3Dx/4+sqrt(3)Dy/4,Ay+3Dy/4-sqrt(3)Dx/4)
如果您将六边形想象为由向量组成,则更容易将其概念化,这些向量线具有大小(距离)和方向(从西到东的地平线角度逆时针旋转)

调用从A到B的向量D。如果你用一些三角学来计算六边形的几何,D的大小是六边形边长度的两倍。所以,我们可以用它来构造和其他六边形边一样大的向量,从而得到六边形的其他点

取向量D,将其大小减半,逆时针旋转60度,并将此新向量添加到A的位置。这给了你P

做同样的事情,但将其顺时针旋转60度,并将其添加到A的位置。这给你R

类似地,Q是向量D的一半,顺时针旋转60度,反转并添加到B的位置

最后,M是向量D减半,逆时针旋转60度,反转并添加到B的位置


(若要将向量转换为移动的x距离和移动的y距离,请将大小分别乘以角度的cos和角度的sin。如果需要弧度,请确保使用弧度;如果需要度,请确保使用度。)

如果你把六边形想象成由向量组成,那么这更容易概念化——向量是具有大小(距离)和方向(从西到东的地平线角度逆时针旋转)的直线

调用从A到B的向量D。如果你用一些三角学来计算六边形的几何,D的大小是六边形边长度的两倍。所以,我们可以用它来构造和其他六边形边一样大的向量,从而得到六边形的其他点

取向量D,将其大小减半,逆时针旋转60度,并将此新向量添加到A的位置。这给了你P

做同样的事情,但将其顺时针旋转60度,并将其添加到A的位置。这给你R

类似地,Q是向量D的一半,顺时针旋转60度,反转并添加到B的位置

最后,M是向量D减半,逆时针旋转60度,反转并添加到B的位置


(若要将向量转换为x距离移动和y距离移动,请分别将大小乘以角度的cos和sin。如果需要弧度,请确保使用弧度;如果需要度,请使用度。)

老实说,我不明白您想要实现什么,但这确实会有帮助(也许是你自己)如果你画一幅图,并利用它来解释问题,你没有链接到你得到“这个公式”的无名来源,所以你的问题的大部分是不连贯的。但是,你不应该只是添加一个链接,你应该为问题本身添加一个可读的解释。我附上了一张图片,以便更清楚。所以你试图找到P,Q,R,M的坐标,作为Ax,Ay,Bx的函数?我假设六边形是规则的(所有内角都等于120度),对吗?否则你应该知道内角。从A到B,P到R,Q到M画线,然后通过简单的三角法找到边L作为Ax和Bx的函数。诚实地使用sin(30)和cos(30),我不明白你想实现什么,但这真的会有帮助(也许是你自己)如果你画一幅图并用它来解释这个问题,你没有链接到你得到“这个公式”的无名来源,所以你的问题的大部分是不连贯的。但是,你不应该只是添加一个链接,你应该为问题本身添加一个可读的解释。我附上了一张图片,以便更清楚。所以你试图找到P,Q,R,M的坐标,作为Ax,Ay,Bx的函数?我假设六边形是规则的(所有内角都等于120度),对吗?否则你应该知道内角。从A到B,P到R,Q到M画线,用简单的三角法求边L作为Ax和Bx的函数。使用sin(30)和cos(30)谢谢你的回复。那么D将是D=Bx Ax+,我是什么意思?这是什么意思?谢谢亲爱的那非常有用谢谢你的回复。那么D将是D=Bx Ax+,我是什么意思?谢谢亲爱的那非常有用
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