gpt4 book ai didi

opengl - 在 OpenGL 中沿折线路径创建管

转载 作者:行者123 更新时间:2023-12-01 10:52:51 26 4
gpt4 key购买 nike

我想沿着由点列表定义的路径绘制管道。

我的想法是,我基本上可以围绕我的每个点绘制圆圈,然后使用 GL_QUAD_STRIP 将圆圈(或者更确切地说,圆圈上的点)连接在一起。

所以,我在圆圈上创建点的代码是这样的:

        point_of_circle[0] = pathVertices[i][0] + TUBE_RADIUS * cos(j/TUBE_SEGMENTS * 2*M_PI));
point_of_circle[1] = pathVertices[i][1] + TUBE_RADIUS * sin(j/TUBE_SEGMENTS * 2*M_PI));
point_of_circle[2] = pathVertices[i][2];

其中 i 是路径顶点的索引(即我想要绘制管道的原始点之一),j 是的索引正在创建的圆的当前点(从 0 到 TUBE_SEGMENTS)。

现在,问题是如果我以这种方式创建圆圈,它们总是以相同的方式定向(圆圈彼此“平行”,就像我一直做的那样 point_of_circle[2] = pathVertices[i][2]),这不是我想要的,因为这样结构看起来不像是一个合适的 pipe 。

我想我可以做的是计算与我正在绘制的路径相切的向量。然后,我需要根据计算的切线以某种方式使圆面向正确的方向。

例如,如果计算的切线是0,0,1,代码应该保持原样。但是,如果将切线计算为其他任何东西,则应旋转圆。

例如,如果计算的切线是 0,1,0,则整个圆的 y 坐标应该相同,如果您沿着 z 轴看,您应该只看到圆的水平段。

如果切线是 1,0,0,如果沿 z 轴看,您应该会看到圆的垂直线段。

我如何编写代码来根据计算的切线正确创建圆?我希望我的解释足够清楚,我是 OpenGL 和大部分 3D 数学的初学者。

最佳答案

总是有 GLE Tubing and Extrusion Library如果你不重新发明轮子。

关于opengl - 在 OpenGL 中沿折线路径创建管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com