我正在使用C#OpenTK,但是C ++ OpenGL中的任何代码都很好,我明白了。
我有一份标记列表。标记被定义为2坐标,以及指向循环中下一个标记的指针。从本质上讲,如果你要遵循这些指针的路径,你最终会达到你开始使用的Marker。这就是最初定义形状的方式。
其中一个'循环'可能不是列表中的所有标记。可以包含多个“循环”。以字母'A'为例:
这里的形状将由2'循环'定义。一个是轮廓(8个标记),而另一个循环是(3个标记)内的三角形。
(标记 - 指针)
我需要一种允许我在屏幕上绘制这样的东西的方法。所提出的解决方案here将正确地解决位图级别上的问题(通过像素检查它是否在多边形内),但效率非常低,特别是考虑到这些标记应该是在运行时连续移动。
要求这些形状应该能够包括诸如A中的三角形(反转)之类的东西,并且优选地允许'循环'的重叠边界,但是第二种形状不是必需的。
我猜测所采用的方向将是某种转换为三角形,或者是内置OpenGL功能的一些奇特技巧。