【发布时间】:2011-09-15 03:58:33
【问题描述】:
我有 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)。
【问题讨论】:
-
规则/凸多边形或凹多边形需要这个吗?
标签: math vector geometry polygon