我有一组点,这些点形成一个形状(特别是半个管道,其他类似形状)。我需要一种绘制此圆柱面的方法。
例如:
我想绘制此半管,并且已将标记的点排序(绘制为红色圆圈)。
具有近似圆柱体(具有线性边缘,并且不完全是圆形的)是很好的。
我的形状并不总是半管形或圆柱形,而是总是封闭的多边形,在那里我有一组点形成它。
(我正在使用PyOpenGL,但这并不重要)
答案 0 :(得分:1)
您应该了解如何在3D模式下渲染模型,之后,您将可以制作所需的任何东西。
每个模型都由三角形组成,一个三角形是空间中的3个任意顶点。
您可能需要下载并启动诸如Blender之类的建模程序,并在尝试进行此操作之前尝试构建您要构建的内容,因为您要么必须手动构建它,要么编写一个可以执行此操作的算法
然后转到线框视图或点视图,您将看到实际构建的内容。只是不要忘记先进行适当的三角剖分(如果您出于某种原因使用了四边形,则搅拌器可以自动进行三角剖分)。
最重要的是,您想使用现代的openGL,这意味着您必须学习管道...
好吧,没有办法避免这种情况,您必须阅读并学习:https://learnopengl.com/
但我可以为您总结一下:
是的,这不应该很清楚,但是在学习本教程时,您将学习如何做到这一点。
关于如何获取实际半管的数据...您需要采取圆公式,选择一个想要的弧,例如PI * 2 / 3
,或者换句话说,在圆的三分之一处,划分该弧分成N
个部分,然后在每个段中创建一个从圆面向外的平面,每个平面是2个三角形(使2个三角形在视觉上形成矩形),最后,您将得到预期的结果。
要真正弄清楚该如何做,您需要学习如何手工构建网格,然后拿一张纸做数学。另外,您可以手动构建整个事物,它只是数字,代表空间中的点,由线连接起来,这些线将平面包围起来。每个平面都是一个三角形。