MickD 发表于 2021-10-26 21:38:51

Delaunator,Delaunay三角剖分,三角网

值得拥有自己的线程,因为它非常令人印象深刻的性能
Source是https://github.com/delfrrr/delaunator-cpp
注意原始源是2D,但输入点集是const,因此索引似乎适用于任何数组。请参阅我在代码中的注释。它本可以更快,但作者使用了他们自己的点类,因此存在内存重复。
Gentin Num Point=1000004, time=645.811500
总时间Num Point=1000004, time=11666.346100
BricsCAD-Gentin Num Point=1000004, time=640.873300
BricsCAD-总时间Num Point=1000004, time=47141.696700
添加面孔可以通过使用事务进行优化,而不是打开和关闭数据库一百万次
这是源


**** Hidden Message *****

JohnK 发表于 2021-10-26 23:43:44

你有没有研究过这类工作的ECS?它非常适合这种有大量数据的事情
https://www . game developer . com/design/the-entity-component-system-an-awesome-game-design-pattern-in-c-part-1-

frtfff 发表于 2021-10-27 02:57:37

我发现民用和点云领域很吸引人,至少在它们处理大数据的方式上是如此。
我认为其中一些引擎正在使用图形卡进行处理。CAD或DWG肯定不是最好的平台。

frtfff 发表于 2021-10-29 20:41:00

找到一个优化,最后一个版本,我保证

frtfff 发表于 2021-10-29 22:13:28

过去几天你一直让我读这些东西。仍然知之甚少(去了那么多兔子洞),但是想想这些东西还是很有趣的。

frtfff 发表于 2021-10-30 19:49:14

我几乎没有什么理解,哈哈。这周只是胡说八道。
自从我退休以来,我一直在考虑加入一些开源项目,只是为了保持我的印章,但这些东西大部分真的很难。

JohnK 发表于 2021-11-16 03:44:33

添加了一个受约束
的 TIN 命令是 createhull、createtin、createctin

frtfff 发表于 2021-11-19 20:50:06

新版本使用createctin
使性能翻倍,从以毫秒为单位的总时间Num Point=36976,time=512

总时间Num Point=36976,time=204
编辑,将最新的附加到第一篇文章

frtfff 发表于 2021-11-22 03:03:13

我发现了一个非常快速的方法来使用现有的TIN算法获得凹面外壳。计算三角形外接圆的半径并检查与用户输入的
注意事项,它有岛屿,边界是从三角形边缘收集的单独线段。边可以翻转,因此很难创建折线边。Createhull2

frtfff 发表于 2021-11-24 05:25:26

将命令Createhull2重命名为Createctin2。
我发现我能够通过使用三角形重置边缘方向来构建一个合适的折线。
对于每个边缘三角形,顺时针定向外部边缘。对于300,000点,它在1s左右确实很快。
但这是用于计算边界和TIN。我可能可以提高一点性能,
但是我用完了葵花籽和黑甘草
页: [1] 2
查看完整版本: Delaunator,Delaunay三角剖分,三角网