SFML:使用顶点列表绘制多边形

问题描述 投票:0回答:1

我正在尝试弄清楚如何在 SFML 中绘制具有褶皱边缘的多边形。我尝试了一些东西,包括 LineStrip、TriangleStrip 和 Triangles。我得到了几个不同的结果,但没有一个是我想要的。

我获得的最佳结果是通过 LineStrip,它一致地创建了我正在尝试构建的形状:

sf::VertexArray T(sf::LineStrip, 6);
        
T[0] = sf::Vector2f(10.f, 20.f);        
T[1] = sf::Vector2f(110.f, 20.f);
T[2] = sf::Vector2f(110.f, 120.f);
T[3] = sf::Vector2f(10.f, 120.f);
T[4] = sf::Vector2f(80.f, 80.f);
T[5] = sf::Vector2f(10.f, 20.f);

但是,正如您所知,该形状并未填充。 我还搞乱了 TriangleStrip,它看起来可以从文档中给出我想要的结果:

但是,使用相同的代码(用 LineStrip 替换 TriangleStrip)会导致形状缺少我正在寻找的折痕:

这是相同的形状,但顶点颜色填充以帮助突出显示事物,以获取一些附加信息。

使用 TriangleStrip 得到的其他结果产生了一些不同的结果,但没有一个是我需要的。这些结果包括一条线到达中心然后到达终点,以及一条线绘制了折痕区域但将其闭合,从而形成了一个奇怪的雕刻。我也尝试过使用 Triangle,但这不一致,甚至没有接近我所需要的。

有人知道如何获得填充的皱纹多边形吗?

c++ polygon sfml
1个回答
-1
投票

对多边形进行三角测量,并使用

sf::Triangles
渲染生成的三角形列表。

© www.soinside.com 2019 - 2024. All rights reserved.