libGDX - 如何将多边形绘制为线(斜接连接类型)?

libGDX - How can I draw polygon as a line (Miter join type)?

如果我知道像这张图片这样的顶点(红色):

我如何 从已知顶点上方确定这些下方未知顶点,这些顶点将线作为斜接彼此连接?

首先看这个Q/A。 您的任务是相同的,只是简单了一点,因为所有线段的线条粗细都相同。

基本上,你需要计算D点的坐标,当 ABC 和线宽 d[=45= 的坐标] 众所周知。

1) 计算角度α,使用Law of Cosines,就像这里 How to calculate an angle from three points?

2) 然后你可以找到向量u和v的长度L:

L =|u| =|v| = d / sin α;

3) 计算向量 uv:

的向量分量
ux = L * (Ax – Bx) / |AB|;
uy = L * (Ay – By) / |AB|;

|AB| - 向量的长度 AB,可以很容易地从点坐标 AB.

vx = L * (Cx – Bx) / |BC|;
vy = L * (Cy – By) / |BC|;

4) 最后找到D点的坐标:

Dx = Bx + ux + vx;
Dy = By + uy + vy;

5) 对你线上的所有点都这样做。