首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对任意四顶点多边形进行三角化

对任意四顶点多边形进行三角化
EN

Stack Overflow用户
提问于 2010-10-02 13:26:30
回答 4查看 586关注 0票数 1

这是给你的谜语。你有一个正好由4个顶点组成的多边形,称它们为v1,v2,v3,v4。它们以任意的随机顺序给出。如何将这些顶点拆分为两个集合,每个集合定义一个三角形,以便这两个三角形组成没有重叠的多边形。

结果应该如下所示:

三角形1: v1,v2,v3三角形2: v2,v3,v4

..。诀窍是,三角形不能重叠,这些点以任何顺序给出,没有任何指示它们的x,y坐标。这有可能吗?如果不是,请建议对坐标已知的4点多边形进行三角化的最佳方法。我正在寻找一个有效的循环。

EN

Stack Overflow用户

发布于 2010-10-02 13:46:36

如果你不知道坐标是不可能的。

对于第一个三角形,拾取任意三个点。不管是哪一个,你都会得到一个可行的三角形。

对于第二个三角形,找到“远”点并将其移除,代之以剩余的点。

诀窍是找到远端的点。由于您只有三个选项,因此只需执行两次检查即可确定是哪一个(如果不是前两个,就是第三个)。这差不多是你能得到的最高效率了。

给定第一个三角形(A, B, C)和第四个点D,远点是三角形中线段(A, D)(B, C)相交的点(假设它是A)。就这么简单。

请注意,这将适用于退化的四边形三角形,但不适用于直线段。也许它会,取决于你是如何定义工作的。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3844499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档