【问题标题】:Finding coordinates of Hexagonal path寻找六边形路径的坐标
【发布时间】:2013-04-11 20:36:01
【问题描述】:

我正在尝试将沿直线(2 点)的运动转换为沿六边形路径的运动,我尝试了不同的公式但没有奏效。

我想根据 A 和 B 找出 P,Q,R,M 的坐标。 我希望有人提出一个更好的公式,它可以为我提供移动长六边形路径的坐标。

【问题讨论】:

  • 老实说,我不明白你想要完成什么,但如果你画一张图并利用它在这里解释问题,它真的会有所帮助(也许你自己)。
  • 您没有指向您获得“此公式”的未命名来源的链接,因此您的大部分问题都是不连贯的。但是,不只是添加一个链接,您应该为问题本身添加一个可读的解释。
  • 为了更清晰,我附上了一张图片。
  • 所以你试图找到 P、Q、R、M 的坐标作为 Ax、Ay、Bx、By 的函数?我想六边形是规则的(所有内角都等于 120 度),对吧?否则你应该知道内角。
  • 从 A 到 B、P 到 R 和 Q 到 M 画线,并通过简单的三角函数找到边 L 作为 Ax 和 Bx 的函数。使用 sin(30) 和 cos(30)

标签: algorithm math graphics linear-algebra graph-algorithm


【解决方案1】:

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

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 = (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)

【讨论】:

  • 感谢您的回复。所以 D 将是 D= Bx-Ax + By-Ay ??我是什么?这是什么意思??
  • 谢谢亲爱的,非常有帮助
【解决方案2】:

如果您将六边形想象为由向量组成 - 具有大小(距离)和方向(从西到东的地平线逆时针旋转的角度)的线,这更容易概念化。

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

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

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

同样,Q 是将向量 D 减半,顺时针旋转 60 度,反转并添加到 B 的位置。

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

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

【讨论】:

    猜你喜欢
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2012-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多