计算八边形的坐标

Shi*_*rty 1 geometry

如何获得八角形的8个坐标?我有以下有关八角形的数据-

  1. 八边形边的长度。

  2. 初始点。

现在我需要知道如何获得八角形的 8 个坐标。

Gol*_*rol 5

幸运的是,八边形是一种相对简单的形状,因为这些线是八角形或 45 度对角线。所以你不需要更复杂的计算。对于一个直角三角形和两条边的长度 Y 相同的三角形,该三角形的斜边的长度为 Y * sqrt(2)。

那个假设是你的 X 边,所以 Y = X / sqrt(2)。

1000多字的图片: 在此处输入图片说明

所以你可以为你想要的长度 X 计算 Y,从那里它只是加法和减法来获得所有坐标。


小智 5

假设一个以原点为中心的八边形,则起点位于

\n\n
(x, y) = (r cos(t), r sin(t))\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中t是起始角和r外接圆的半径。\n你可以通过转换为极坐标来找到它们,

\n\n
r = \xe2\x88\x9ax\xc2\xb2+y\xc2\xb2, tan(t) = y/x\n
Run Code Online (Sandbox Code Playgroud)\n\n

但这是不必要的。

\n\n

其他顶点位于

\n\n
(x, y) = (r cos(t + k \xcf\x80/4), r sin(t + k \xcf\x80/4))\n
Run Code Online (Sandbox Code Playgroud)\n\n

可以通过角加法公式来简化公式。例如,对于第二个顶点

\n\n
(r (cos(t) - sin(t))/\xe2\x88\x9a2, r (sin(t) + cos(t))/\xe2\x88\x9a2) = ((x - y)/\xe2\x88\x9a2, (x + y)/\xe2\x88\x9a2)\n
Run Code Online (Sandbox Code Playgroud)\n\n

对于第三个

\n\n
(r (-sin(t)), r cos(t)) = (-y, x)\n
Run Code Online (Sandbox Code Playgroud)\n