【发布时间】:2019-03-14 01:28:37
【问题描述】:
我有一组形成形状的点(特别是半个管道,其他类似的形状)。我需要一种方法来绘制这个圆柱面。
例如:
我想画这个半管子,我把标记的点排序(画成红色圆圈)。
具有圆柱体的近似值(具有线性边缘,而不是完全圆形)很好。
我的形状并不总是半管或圆柱形,而是总是封闭的多边形,我有一组点形成它。
(我用的是PyOpenGL,不过没关系)
【问题讨论】:
-
您在哪里遇到问题?这可以用 N 个三角形绘制(在给定的示例中,它似乎有 14 个)。我想从你的观点推断三角形可能很有趣,但你应该先自己尝试一下,然后向我们展示你的结果。另一个问题是如何绘制三角形,我认为您可以找到答案。 “我的形状并不总是半管......”部分看起来很适合形成三角形,但需要更多数据。比如点是如何排序的,以便您知道哪些点连接曲面。
-
我想不出一种简单通用的方法来直接把它做成三角形
-
嗯,关于订购的额外提示并非没有。形状不明确,只有点。
-
我的意思是,如果提示是“它是半管”,在大多数情况下,我们可以从您的示例中的点找到中心线和半径。也是一个起点和终点,可以让我们绘制一个完美的半管。但是,如果这种形状可以是任何东西,我们可能会遇到问题。其中一些形状可能是独一无二的,例如有管道和球体,但其他形状可能没有那么多。
-
[不想编辑答案,这只是附加信息],YouTube 上有 ThinMatrix 提供的相当不错的 openGL 教程,它使用 Java 并使用 LWJGL,但 OpenGL 的核心基础是一样,所以如果你仍然不知道你在做什么,你可以跟着它。请注意,他并没有以最好的方式做到这一点,你应该只是模糊地遵循它。例如,当他将在下一帧绑定缓冲区时,他在绘制后不必要地取消绑定缓冲区,这意味着即使他不取消绑定它们也不会发生任何异常情况。如果你想效仿一个真实的例子。
标签: opengl polygon pyopengl tessellation