【发布时间】:2014-09-21 21:59:17
【问题描述】:
我需要找到一种绘制封闭二维曲线内部的方法。这条曲线实际上是使用双三次贝塞尔曲线创建的,但我相信这并不重要。
目前绘制的形状内不应有“洞”。所以它会被完全填满。似乎受限的德劳内三角剖分是要走的路?但似乎有不同的方法可以做到这一点。我正在寻找一种快速而简单的解决方案(但会实施使其工作所需的东西)。
Illustrator 等程序具有这种功能(或 SVG——带有选项填充)。
我正在寻找:
- 实现此目的的技术
- 指向我解释算法的论文/文档
- SVG 渲染器的源代码是否可以在某处获得?
编辑:
- 应用程序使用 OpenGL。我自己画曲线。只需要找到一种方法来填充它们。
- 形状可以是凹的也可以是凸的
【问题讨论】:
-
一个好的答案取决于您正在绘制的环境。例如,Windows 直接支持使用贝塞尔轮廓绘制填充形状。 PostScript 和 PDF 也是如此。另一方面,如果你直接操作位,那么问题就变成了:你能画出轮廓吗?
-
将贝塞尔曲线展平为直线并使用剪耳法。
-
@Logicrat:是的,抱歉问题不够清楚。我正在使用 OpenGL。我自己画贝塞尔曲线,现在只需要画里面。
-
如果你用线段来近似贝塞尔曲线,你可以把这个形状当作一个多边形。您可以直接使用 OpenGL 渲染凹多边形。请参阅此问题/答案:stackoverflow.com/questions/25422846/…。
-
cs.haifa.ac.il/~gordon/crit.pdf(如果有帮助,我还将它作为更大的 OpenGL 项目的一部分实现)。
标签: c++ algorithm graphics vector-graphics bezier