gpt4 book ai didi

将 "normal"矩形转换为一组 GLes vector ?

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:31 25 4
gpt4 key购买 nike

如何将“普通”矩形转换为一组 OpenGL ES 顶点。我不擅长几何学,所以我不知道顶点是如何工作的,我希望能够操纵矩形,而不必通过反复试验计算出顶点的值。

我基本上需要转换这个结构:

typedef struct __nrect {
float width;
float height;
float depth;

/* center */
float x;
float y;
float z;
} simple3dRect;

像这样:

    const GLfloat cubeVertices[6][12] = {
{ 1,-1, 1, -1,-1, 1, 1, 1, 1, -1, 1, 1 },
{ 1, 1, 1, 1,-1, 1, 1, 1,-1, 1,-1,-1 },
{-1, 1,-1, -1,-1,-1, -1, 1, 1, -1,-1, 1 },
{ 1, 1, 1, -1, 1, 1, 1, 1,-1, -1, 1,-1 },
{ 1,-1,-1, -1,-1,-1, 1, 1,-1, -1, 1,-1 },
{ 1,-1, 1, -1,-1, 1, 1,-1,-1, -1,-1,-1 },
};

有没有简单的方法来做到这一点?

最佳答案

假设生成的立方体是轴对齐的,并且宽度对应于 x 轴,高度对应于 y 轴,深度对应于 z 轴:

const GLfloat cubeVertices[6][12] = {
{ x + width/2, y - height/2, z + depth/2, x - width/2, y - height/2, z + depth/2, x + width/2, y + height/2, z + depth/2, x - width/2, y + height/2, z + depth/2 },
{ x + width/2, y + height/2, z + depth/2, x + width/2, y - height/2, z + depth/2, x + width/2, y + height/2, z - depth/2, x + width/2, y - height/2, z - depth/2 },
{ x - width/2, y + height/2, z - depth/2, x + width/2, y - height/2, z - depth/2, x - width/2, y + height/2, z + depth/2, x - width/2, y - height/2, z + depth/2 },
{ x + width/2, y + height/2, z + depth/2, x - width/2, y + height/2, z + depth/2, x + width/2, y + height/2, z - depth/2, x - width/2, y + height/2, z - depth/2 },
{ x + width/2, y - height/2, z - depth/2, x - width/2, y - height/2, z - depth/2, x + width/2, y + height/2, z - depth/2, x - width/2, y + height/2, z - depth/2 },
{ x + width/2, y - height/2, z + depth/2, x - width/2, y - height/2, z + depth/2, x + width/2, y - height/2, z - depth/2, x - width/2, y - height/2, z - depth/2 },
};

显然,这可以通过预先计算 width/2 等值来简化/优化,为了清楚起见,此处包含普通字符。

关于将 "normal"矩形转换为一组 GLes vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6503871/

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