首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取三角形周围的路径

获取三角形周围的路径
EN

Stack Overflow用户
提问于 2011-09-04 22:42:34
回答 2查看 114关注 0票数 0

我得到了三角形网格中的三角形列表,如下所示:

代码语言:javascript
复制
__________________
/\      /\      /\
  \    /  \    /
   \  /    \  /
____\/______\/____
    /\      /\
   /  \    /  \
  /    \  /    \
\/______\/______\/
/\      /\      /\
  \    /  \    /
   \  /    \  /
____\/______\/____

三角形既可以存在,也可以不存在。我需要在三角形周围找到一条路径,如下所示:

代码语言:javascript
复制
 ========
\\      /\\
 \\    /  \\
  \\  /    \\
   \\/______\\========
    \\      /\      //
     \\    /  \    //
      \\  /    \  //
       \\/======\//

我需要在三角形周围按顺时针顺序显示粗线。我可以使用什么算法来获得它?我已经可以使用不相交集将三角形分类为组,但我不知道如何获得组周围的路径。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-04 23:05:44

孤立的三角形周围有三条线。如果在它旁边添加另一个三角形,则会丢失它们合并处的一条线,并从新三角形中获得另外两条线。因此,您可以跟踪显示为彼此相邻放置的一组三角形的边界的一组线,还可以跟踪这些线中的哪些线与其他哪些线相交。

我在这里假设,只有共享一个边界才能连接一个组中的两个三角形,而不是共享一个点。直线在一点相交,如果仅共享一个边界可视为连接两个三角形,则每条外线在其两端仅与另一条外线相连。

如果你跟随(例如深度优先搜索)形成的图形,其中节点是线,线之间的链接显示一条线与另一条线相邻的位置,你将跟踪一圈线-这不会比这更复杂,因为任何一条线最多与两条其他线相交,每条线的每个端点都有一条。

如果您的三角形组中没有孔,那么您将检索单个循环,这是它的外部边界。如果三角形组中有孔,您将检索外边界和每个孔的循环。外部边界必须是包含最大面积的循环,因为它包含所有的孔。

票数 4
EN

Stack Overflow用户

发布于 2011-09-04 22:58:59

只需遍历每个三角形,并对三角形的每一条边检查它是否与另一个三角形接触;如果不是,则将其边设置为粗体。

编辑

如果需要以顺时针方式显示线条绘制的动画,只需计算要绘制的所有边,然后按极轴角度对线条进行排序,并按此顺序显示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7299928

复制
相关文章

相似问题

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