如何填充形状,由 GL_LINE_LOOP 组成

Posted

技术标签:

【中文标题】如何填充形状,由 GL_LINE_LOOP 组成【英文标题】:How to fill the shape, made up of GL_LINE_LOOP 【发布时间】:2015-12-23 11:29:45 【问题描述】:

我正在尝试制作水模拟。但我仅限于使用 2D,所以我开始使用正弦波通过 Gl_Line_loop 来制作海洋的边界。但我无法填补它。我尝试将其更改为 Gl_polygon 模式,但我没有得到正确的形状。这是代码:

here is the image of wave, i want to get filled

【问题讨论】:

【参考方案1】:

要对上述内容进行细分,请沿直线指定一个顶部顶点,然后是一个底部顶点,然后绘制一个三角形条带。即对于沿正弦波的每个 (x, y) 位置,发射两个顶点,相同的 x 但 y = 0(底部)。然后渲染一个三角条。

类似这样的:

glBegin(GL_TRIANGLE_STRIP);
for(x=-50;x<=50;x+=inc)
    k = 2 * 3.14 / wavelength;
    y = amplitude * sin(k * x);
    glVertex3f(x, y-35, 0);
    glVertex3f(x, y, 0);

glEnd();

【讨论】:

你能不能给我建议一下如何让它看起来像水在流动?? x 位置的波长角固定为 -50 到 50 为 sin(k * x)。你需要 k * x 随时间变化,所以也许 sin(k * (x + t)),其中 t 从 0 开始,每帧递增少量。 你先生是个天才:'它正在动人……再次感谢:')

以上是关于如何填充形状,由 GL_LINE_LOOP 组成的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS中用渐变填充CGPoints定义的形状?

如何用动画填充画布形状?

由围绕矩形形状顺时针方向移动的数字组成的图案(长度和宽度每次减小)[关闭]

如何创建一个 1 形成“菱形”形状的二维二进制数组

ActionScript 3 创建虚线(由任何形状/ MC组成)

如何用两列 C++ 从文本文件中填充向量