我正在尝试将纹理映射到六边形,但我无法确定纹理坐标。
These are my vertices:
private float vertices[] = { 0.0f, 0.0f, 0.0f, //center
0.0f, 1.0f, 0.0f, // top
-1.0f, 0.5f, 0.0f, // left top
-1.0f, -0.5f, 0.0f, // left bottom
0.0f, -1.0f, 0.0f, // bottom
1.0f, -0.5f, 0.0f, // right bottom
1.0f, 0.5f, 0.0f}; // right top
六边形的“底”是垂直的。(主要是因为我懒得弄清楚如何旋转该死的东西XD)现在问题是,我不知道如何计算纹理坐标。我已经查看了整个网络,但仍然没有成功。
如果有人可以向我解释如何计算纹理坐标,我将不胜感激,因为除了纹理一个简单的正方形之外,我恐怕无法弄清楚。
注意:它是一个“方形”六边形,所以不是基于圆形。编辑:使用 LG_TRIANGLE_STRIP 绘制六边形。
问题解决了。我现在明白如何计算这些坐标了。以下是对我有用的:
private float texture[] = { 0.5f, 0.5f,
0.5f, 0.0f,
0.0f, 0.25f,
0.0f, 0.75f,
0.5f, 1.0f,
1.0f, 0.75f,
1.0f, 0.25f };