Ben Discoe,2001年2月11日的笔记,更新至2009年1月

我需要一些镶嵌多边形的代码,可以集成到VTP图书馆,具有以下理想的特征:

  • 轻便的
  • 不依赖大型外部库
  • 免费(没有限制性许可)
  • 在C/C++中
  • 使用方便
  • 优选地,处理多边形中的“洞”

以下是我找到的每个选项。

  1. 计算机图形学

    • 包含能够镶嵌的功能(在glu库中)
    • 问题:需要注册6个回调函数的复杂系统
    • 问题:不好用,红宝书里没有示例代码
    • 问题:具有较大的外部依赖性(OpenGL,具有有效的上下文)
    • 提取臀肌功能SGI OpenGL示例实现

      • 一个开发者已经做到了这一点,并说“这非常容易”,这似乎相当令人惊讶!
    • 瓦莱里·莫亚在2009年7月写道:
      • “我写了自己的glu tesselator。从回调中抓取镶嵌并不困难,也不需要太多代码就能工作。(事实上,我只注册了两个回调函数:GLU_TESS_BEGIN和GLU_TESS_VERTEX。)在我的试验中,我能够从构成我想要镶嵌的多边形轮廓的vert列表中获得镶嵌(没有重叠边,但允许定义为逆时针vert列表的孔)。“困难”的部分是,你需要处理得到三角形顶点的三角形、三角形扇形和三角形条带顺序,但这并不像听起来那样糟糕。
      • 瓦尔的代码:glu_tesselation.c
  2. 基于Seidel算法的快速多边形三角剖分(1995)
    • 有C代码吗
    • 问题:小型Unix依赖(%3Csys/time.h%3E),调用非标准stdlib函数“log2”
    • 问题:在函数add_segment()中,使用了一个未经初始化的变量——即它是有问题的代码
    • 问题?1995年写的自述说“仅供非商业使用”
      • 作者Atul Narkhede从CMU来到SGI,他在一个更新的网站上将代码称为“公共领域”,所以最新的状态显然是非限制性的
    • 2008年,收到一封邮件从另一个尝试代码的人那里,他发现代码错误太多
  3. 高效多边形三角剖分约翰·w·拉特克利夫对flipcode
    • C++代码,很小很好用!
    • 使用STL,但是这种依赖性很容易消除
    • 用我自己的数据测试过,效果很好。将其添加到vtdata。
    • 只有一个问题:不处理漏洞(也没有声称)
  4. 凝胶渗透色谱(Gel Permeation Chromatography的缩写)
    • 除了三角剖分之外,还进行裁剪和布尔运算
    • 问题:据报道“使用了一个简单的梯形分解,引入了许多t型连接”
    • 问题:禁止性许可限制了使用
  5. “三角形”经过乔纳森·休楚克
    • 可以生成Delaunay三角剖分,这对于某些目的来说显然具有令人满意的特征,但是对于一般情况来说有点过了。对于我们更简单的情况,它可以产生“约束的Delaunay”,这意味着没有无关的三角形。
    • 支持孔!
    • Source是免费和可移植的,只有一个源文件(triangle.c ),这使得它易于集成。
    • 一个小缺点是:你不能只告诉它哪些部分是你的洞的边缘。相反,您必须提供位于孔内的某个点。三角测量这个洞,然后进行某种“洪水填充”来清空它。这是低效的,但更糟糕的是,它要求调用者为这个洞计算多边形中的点。对于任意复杂的多边形,这是一个不平凡的算法。
    • 在2008.01中,我用包装器修改了三角形代码,以便从vtlib中调用它。对于大量的多边形,这种方法非常有效。然而,在一些(罕见的)退化几何体的情况下,它会崩溃。特别是:

      1. 它不喜欢重复的顶点或重复的边。在这种情况下,“重复”是相对于数字精度而言的:对于一个10-100米大小的建筑,两个顶点相距8厘米以内,定义了一条非常短的边,会导致三角形崩溃。
      2. 它不喜欢多边形中的一个洞(内环)与外环中的一个洞(崩溃)具有相同位置的顶点。
  6. 陆地齿轮
    • 一个包含Seidel算法的Narkhede实现的清理版的免费库(如上图)?不,也许早在2001年就有了,但是从2007年开始,它包含了调用“三角形”的代码。这实际上是一个很好的调用三角形的示例代码。
  7. Panda3d
    • 迪士尼VR小组使用的一个巨大的免费软件堆栈,其中包括改编自“Narkhede A .和Manocha D,基于Seidel算法的快速多边形三角剖分算法”的三角剖分
    • 三角测量被深埋在其代码的C++部分,在大量python、tcl、跨平台抽象和用于构建定制构建工具的定制构建工具之下!
    • 在2008.01.30,我将“三角测量”模块从Panda中取出,使其独立,并运行提供的测试(test_tri.cxx)。它崩溃了,数组索引为负。
    • 我还花了3个小时尝试构建Panda本身(禁用了包括Python在内的大多数依赖项。)没有运气,就是太复杂了。
    • 有一些暗示说熊猫版的纳卡德-马诺查可能会被清理或修复。然而,由于它在Panda之外的一个简单测试中崩溃了(对我来说),这并不令人鼓舞。
    • 出发地:塞巴斯蒂安·贝尔特mailto:sbrt@yahoo.fr]
      发送时间:2008年2月1日星期五上午12点56分
      我假设你在CVS上使用的是最新版本(3周前提交的),对吗?http://panda 3d . CVS . SourceForge . net/panda 3d/panda/src/math util/triangulator . cxx?修订版= 1.5 &视图=标记
      论坛上的帖子提到了一些修复...
  8. Poly2Tri(梁/基特尔曼,2005)
    • 使用单调多边形和扫描线算法的细分,O(n log n)时间和O(n)存储
    • 支撑着洞,做了很多很细的三角形。
    • 它比较了Poly2Tri与其他一些三角剖分实现的速度,并声称速度更快,尽管生成的三角形非常细。
    • 另一个开源实现可从PolygonTriangulator.cxx(google it),作者Thomas Kittelmann说它改编自吴亮(2005)的实现,该实现似乎是“LXR地图集”项目的一部分
  9. poly2tri(梅森格林?,2009-)

    • 说它是“基于论文”约束Delaunay三角剖分的扫描线算法作者:v .多米特尔和b .扎利克"
    • 处理孔。
    • BSD许可证。生活在谷歌代码上。
    • 我是2011-07-19评估的。它设法细化了一些输入,这是休楚克的三角形所不能做到的。然而,它仍然在一些输入上崩溃,比如右边的多边形。请再次注意多边形的一个洞(内环)是如何精确地接触到外环的。该算法似乎认为这是退化的(甚至不检测它以避免崩溃),但不幸的是,这是一个常见的形状。
  10. 水运工程岩土勘察规范
    • 从2011年开始,Java拓扑套件(JTS)显然会进行合理质量的三角剖分并支持漏洞,参见基于Delaunay细化的耳裁剪多边形三角剖分。JTS是一个非常大的软件包(和它的C++兄弟一样,乔斯大衣呢)但是如果您已经在使用它,那么这可能是一个选项。

其他人

  • 在线性时间内三角剖分简单多边形(查泽尔,1991年)
  • 米(meter的缩写))举行(2001): "拳头:多边形的快速工业强度三角测量”。FIST不是开源的,也不允许无限制的使用。

简单多边形的三角剖分相关技术相关推荐

  1. 从6篇经典论文看问题生成及其相关技术

    ©PaperWeekly 原创 · 作者|Maple小七 学校|北京邮电大学硕士生 研究方向|自然语言处理 在问答系统的构建中,问题生成(QG)常被当作一种数据增强技术来对待,然而在实践中,通过问题生 ...

  2. EF-Entity Framework 相关技术点收集贴

    不定期.偶尔.添加更新 在网络上看到或者自己开发过程中碰到的EF-Entity Framework相关技术点 本文地址:http://www.cnblogs.com/vnii/archive/2012 ...

  3. iOS-FXDanmaku弹幕库介绍、相关技术分享

    前言 去年, 2016年, 一大波直播平台在移动端涌出, 直播慢慢步入了人们的视角. 网上如今能够看到各式各样的直播, 如秀场直播.游戏直播.体育直播.娱乐直播等等. 在各种类型的直播中, 弹幕在PC ...

  4. NGS的测序仪和相关技术时间轴 NGS相关数据库和项目时间轴

    NGS的测序仪和相关技术时间轴 NGS相关数据库和项目时间轴:

  5. Python GUI编程-了解相关技术[整理]

    Python GUI编程-了解相关技术[整理] 我们可以看到,其实python进行GUI开发并没有自身的相关库,而是借用第三方库进行开发.tkinter是tcl/tk相关,pyGTK是Gtk相关,wx ...

  6. [转]国内各大互联网公司相关技术站点2.0版 (集合腾讯、阿里、百度、搜狐、新浪、360等共49个)...

    利用闲暇时间整理了一份国内各大互联网公司的相关技术站点,希望能够对大家有所帮助,也欢迎各位帮忙补充. 腾讯系列(13)  阿里系列(18)  百度系列(3)  搜狐系列(3)  新浪系列(2)  36 ...

  7. 【深度学习】计算机视觉相关技术探索(一)

    [深度学习]计算机视觉相关技术探索(一) 文章目录 1 计算机视觉概述 2 使用机器学习解决图像分类问题 3 Keras和神经网络简介 4 卷积神经网络(CNN),迁移学习 5 对象检测问题 6 yo ...

  8. Python后端相关技术/工具栈

    Python后端相关技术/工具栈 转载http://python.jobbole.com/83486/ 整理下目前涉及到的python的技术栈和工具栈(用过或了解的, 其他的后续用到再补充) 编辑器 ...

  9. 《Science》杂志:机器学习究竟将如何影响人类未来的工作? 2018-01-11 Smiletalker AI科技评论 AI 科技评论按:人工智能、机器学习相关技术已经多次刷新了人们对于「计算机能

    <Science>杂志:机器学习究竟将如何影响人类未来的工作? 2018-01-11SmiletalkerAI科技评论 AI 科技评论按:人工智能.机器学习相关技术已经多次刷新了人们对于「 ...

  10. 【转】BI 入门: 体系架构及相关技术

    (1) 老板,你要这么多数据做什么?         假如你是一个商品零售公司的老板.     你的公司很先进,已经实现了业务信息化,每一笔销售单据都保存在数据库中,日积月累,已经保存了十余年的销售数 ...

最新文章

  1. 为什么单片机通常只有那么小的数据内存?
  2. 20个超高效的Linux命令与技巧
  3. 使用selenium和pyquery爬取京东商品列表
  4. Android学习笔记:TabHost 和 FragmentTabHost(转)
  5. 嵌入式如何移植php,关于嵌入式web服务器的移植
  6. 测绘专业学生对测绘软件的一点认识
  7. matlab小波分解图像,MATLAB小波图像分解
  8. Ubuntu 20.04 美化教程
  9. 小米路由器 mini 重新刷回官方固件
  10. 数据库安装、数据导入及格式转换20200514
  11. 流程图中省略的图表怎么表示_如何将流程图和图表添加到Google文档或幻灯片
  12. squid 备忘[1]:根据域名选择上游代理
  13. 团队协作与团队内部竞争_从个人团队到竞争组织
  14. 关于某日头条_signature参数逆向生成纯补环境
  15. cpu2017的526.blender编译出错原因
  16. 公开招标,邀请招标,竞争性谈判,询价采购之间的区别
  17. android webdav客户端,WebDAV精灵
  18. 微信小程序开发风口,这些小程序营销玩法你知道吗?
  19. 统计源期刊《国际医学放射学杂志》
  20. 树莓派4 Ubuntu18.04安装xubuntu桌面 无线WIFI 及 ros melodic(解决apt update error,安装xubuntu error问题)

热门文章

  1. 常用颜色及RGB配色表
  2. java生成pdf带图片_(例)Java生成PDF图片 iText
  3. windows无法安装到这个磁盘,选中的磁盘具有MBR分区表,在EFI系统上,windows只能安
  4. pascal语言入门
  5. Pascal基础教程
  6. 学校校园监控安装安全系统方案
  7. python波形分析_[转载]频谱分析:基于python画出时域频域波形
  8. 电脑课学生端密码查看
  9. 成都11区+4县+5市高分辨率边界kml
  10. 谷歌不会退出中国市场的八大理由