gpt4 book ai didi

opengl - 使用 GL_POLYGON 绘制圆的纹理映射

转载 作者:行者123 更新时间:2023-12-01 22:46:50 24 4
gpt4 key购买 nike

我正在尝试使用以下代码使用 GL_POLYGON 将纹理映射到圆形:

void drawCircleOutline(Circle c, int textureindex)
{
float angle, radian, x, y; // values needed by drawCircleOutline

glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureLib[textureindex]);

glBegin(GL_POLYGON);

for (angle=0.0; angle<360.0; angle+=2.0)
{
radian = angle * (pi/180.0f);

x = (float)cos(radian) * c.r + c.pos.x;
y = (float)sin(radian) * c.r + c.pos.y;

glTexCoord2f(x, y);
glVertex2f(x, y);
}

glEnd();
glDisable(GL_TEXTURE_2D);
}

运行时看起来像这样。

img1

应该看起来像这样:

img2

最佳答案

尝试:

radian = angle * (pi/180.0f);

xcos = (float)cos(radian);
ysin = (float)sin(radian);
x = xcos * c.r + c.pos.x;
y = ysin * c.r + c.pos.y;
tx = xcos * 0.5 + 0.5;
ty = ysin * 0.5 + 0.5;

glTexCoord2f(tx, ty);
glVertex2f(x, y);

关于opengl - 使用 GL_POLYGON 绘制圆的纹理映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8762826/

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