如何解决多边形边缘算法问题
| 我有2D多边形,其顶点位于局部多边形空间中。我正在尝试计算新的顶点,这些顶点将在多边形内部周围形成均匀长度的边。 目前,要计算边缘,我基本上是在缩小原始顶点。对于每个多边形顶点,我计算求反的单位矢量,并将其乘以恒定的边长因子。然后,将其添加到原始多边形顶点。 伪代码:const float edgeLength = 0.5;
for each vertex v
vec2 n = -v.unit();
vec2 edgeVertex = v + n * edgeLength;
结果在常规多边形上工作正常:
屏幕截图1
但是,在其他多边形(例如矩形)上,边长不一致:
屏幕截图2
我已经尝试了许多不同的尝试,但到目前为止似乎没有任何效果,非常感谢您的帮助!
(请忽略以3D渲染多边形,实际的多边形数据为2D)。
解决方法
在垂直于边缘的方向上将每个边缘移动固定的距离(如果边缘逆时针,则向左移动所有边缘)。然后计算新边的交点-这些是新顶点。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。