如何使用坐标以厘米为单位缩小多边形

How to shrink polygon by a defined amount in centimetres using co-ordinates

我正在尝试将多边形缩小特定数量,其中新多边形中的所有边与旧多边形的距离相等。为了更好地解释,我在这里有一张图片。

如果图片不起作用,我这里有 link。 https://imgur.com/a/A27mVHs

这是草图。

我在 ([x,y]) 中有一个点数组 [[390,435], [388,430], [391,425], [425,428], [410,435]]

我正在尝试缩小它以便新数组 [[x1,y1], [x2,y2] ... [x5,y5]]

确保新区域与原区域之间的距离在该区域的所有边上都是2。

如何仅通过操纵坐标来做到这一点。我知道我需要某种标量向量,但我不确定该怎么做。我正在尝试在 javascript

中实现它

您是否做过一些研究,因为互联网上有很多关于该主题的话题,简短的回答是这并不容易,因为有很多边缘情况(look this topic for exemple).

如果您想查看更多内容并找到不错的库来为您完成此任务,一个很好的术语是多边形偏移

其他好的链接:

在一般情况下这确实是一个棘手的问题。但是对于凸多边形,这很容易。

在每个角度,绘制平分线并找到顶点距离等于 d / sin α/2 的点,其中 α 是角度的度量。