图形:如何在 opengl 中围绕线段创建 3D 圆柱体?

Graphics : How to create a 3D cylinder around a line segment in opengl?

我有一个有 2 个端点的线段,我想围绕它创建一个半径为 r 的圆柱体。

网上的例子已经够多了,这里简单介绍一下。将圆柱体想象成一个 CD 架。考虑圆柱体的"bottom surface"。你知道这个表面的中心是线段的一端。现在这个表面的边缘顶点,只是一组三角形(比如 8 个)的顶点,这些三角形以一个顶点作为表面的中心。为了使圆柱体完整,将这样的表面堆叠起来直到线段的另一端。

如何找到与曲面相交的每条线的顶点(例如,下图中有8条线)?循环是这样的:

for(each line)
{
    float angle_degrees = 360 * (id of line) / (number of lines);

    float x = radius * cos(angle_radians);
    float y = radius * sin(angle_radians);
}

zwiggler 绘图:

关于这个主题的其他一些讨论: Number of Sides Required to draw a circle in OpenGL