繁体   English   中英

将三角形三角剖成网格[关闭]

[英]triangulating a triangle into a grid [closed]

是否有一种算法可以将可能跨越多个网格元素的三角形划分为多个三角形,而没有三角形可以覆盖多个网格元素?

我已经在2x2的网格中包括了一个cr脚的三角形手绘图,将其切成七个较小的三角形。

之前和之后

我看到这样的:


您的三角形是3条闭合的多边形
点顺序给您缠绕规则( CWCCW

  1. 用网格线剪掉所有线

    但仍将三角形保留为单个闭合多边形,并且不更改缠绕

  2. 将多边形分割成几行列表

    只需将属于同一网格单元的所有线组合在一起,以便所有点都在该单元的内部或边缘。 再次不要改变绕组!

  3. 将线列表转换为封闭的多边形

    从第一行列表中的第一行开始。 如果它要加入实际列表中的任何行,请继续。 如果不是,则继续沿相同的缠绕方向继续使用电池边缘线,直到碰到另一个线点或电池角。

    重复此操作,直到为此单元格形成闭合的多边形(命中已使用的线/点)。 以相同方式处理其他单元

  4. 现在您已经关闭了凸多边形列表

    所以就把它分成三角形(三角形扇形)

三角形网格

看到别人除了我之外也曾经尝试过这一点,这真是令人耳目一新(我一直在用OpenGL编写一个引擎,可以根据这个概念构建地形,但也可以将其放在3d中)。

话虽如此,Spektre在金钱上是正确的。 我的引擎遵循几条与他相似的规则:

  • 坚持使用CW或CCW绕组(我正在使用CW)

  • 我只是将三角形分割成更小的三角形,所以它们都是凸的-因此没有凹多边形。

  • 用于检测将拆分为三角形的数量的公式为N - 2 ,其中N是单元格中的点数。 显然,如果它是3 ,则您有一个完美的三角形(例如上方网格单元中的蓝色三角形)

稍后,我将尝试为您上传一些图片。 希望您仍在努力或至少取得了进展!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM