多边形边缘算法问题

| 我有2D多边形,其顶点位于局部多边形空间中。我正在尝试计算新的顶点,这些顶点将在多边形内部周围形成均匀长度的边。 目前,要计算边缘,我基本上是在缩小原始顶点。对于每个多边形顶点,我计算求反的单位矢量,并将其乘以恒定的边长因子。然后,将其添加到原始多边形顶点。 伪代码:
const float edgeLength = 0.5;
for each vertex v
    vec2 n = -v.unit();
    vec2 edgeVertex = v + n * edgeLength;
结果在常规多边形上工作正常: 屏幕截图1 但是,在其他多边形(例如矩形)上,边长不一致: 屏幕截图2 我已经尝试了许多不同的尝试,但到目前为止似乎没有任何效果,非常感谢您的帮助! (请忽略以3D渲染多边形,实际的多边形数据为2D)。     
已邀请:
        在垂直于边缘的方向上将每个边缘移动固定的距离(如果边缘逆时针,则向左移动所有边缘)。然后计算新边的交点-这些是新顶点。     

要回复问题请先登录注册