0

我正在使用 C# OpenTK,但是 C++ OpenGL 中的任何代码都很好,我理解。

我有一个标记列表。标记定义为 2 坐标,以及指向循环中下一个标记的指针。从本质上讲,如果您要遵循这些指针的路径,您最终会到达您开始使用的标记。这就是最初定义形状的方式。

这些“循环”之一可能不是列表中的所有标记。可能包含多个“循环”。以字母“A”为例:

在此处输入图像描述

此处的此形状将由 2 个“循环”定义。一个是轮廓(8 个标记),而另一个循环是(3 个标记)内的三角形。

(标记 - 指针)

  • 1-2、2-3、3-4、4-5、5-6、6-7、7-8、8-1
  • 9-10、10-11、11-9

我需要一种方法,可以让我在屏幕上画出这样的东西。此处所述的解决方案将正确解决位图级别的问题(逐个像素检查它是否在多边形内),但是效率非常低,特别是考虑到这些标记应在运行时连续移动的事实。

要求这些形状应该能够包含诸如 A(倒置)中的三角形之类的东西,并且最好允许“循环”的重叠边界,但第二个东西不是必需的。

我猜所采用的方向要么是某种转换为三角形,要么是一些具有内置 OpenGL 功能的花哨技巧。

4

1 回答 1

1

您正在寻找带孔 的三角剖分。

查看通用多边形剪裁器 (GPC)

于 2012-09-27T15:43:35.110 回答