如果我知道这样的顶点(红色):

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


Drawing Lines is Hard
Line Joins


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

最佳答案

首先,请查看此Q/A
您的任务是相同的,只是简单一点,因为所有段的线宽都相同。java - libGDX-如何绘制多边形为线(斜接连接类型)?-LMLPHP

基本上,您需要计算D点的坐标
A,B,C和线宽d的坐标是已知的。

1)使用Law of Cosines计算角度α,如下所示
How to calculate an angle from three points?

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

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


3)计算向量u和v的向量分量:

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


| AB | -从点A和点B的坐标可以轻松找到向量AB的长度。

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


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

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


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

09-09 17:50