我有2D多边形,它们的顶点位于局部多边形空间中。我正在尝试计算新的顶点,这些顶点会在多边形内部形成一个均匀的长度边缘。
目前要计算边缘,我基本上缩小了原始顶点。对于每个多边形顶点,我计算否定单位向量并将其乘以恒定边长度因子。然后我将它添加到原始的多边形顶点。
伪代码:
const float edgeLength = 0.5;
for each vertex v
vec2 n = -v.unit();
vec2 edgeVertex = v + n * edgeLength;
结果在常规多边形上正常工作:
screenshot 1
但是,对于其他多边形,例如矩形,边长不均匀:
screenshot 2
我尝试了很多不同的尝试,但到目前为止似乎没有任何工作,任何帮助将不胜感激,谢谢! (请忽略多边形以3D渲染,实际的多边形数据为2D)。
答案 0 :(得分:1)
将每个边缘沿垂直于边缘的方向移动固定距离(如果边缘逆时针运行,则全部向左移动)。然后计算新边的交点 - 这些是新的顶点。