C++ 使用opengl为通用多边形应用纹理的通用方法

C++ 使用opengl为通用多边形应用纹理的通用方法,c++,opengl,textures,render,polygon,C++,Opengl,Textures,Render,Polygon,有人知道将glTexCoord2f应用于通用多边形的通用方法吗? 对于圆、三角形和四边形,这是非常直观的,但多边形有点乱 例如,我的等边三角形渲染为: void Triangulo::RenderizaPontos(){ glColor3f(red, green, blue); glLineWidth(grafite); glBegin(GL_TRIANGLES); glTexCoord2f(0.0f, 0.0f); glVertex2f(cantoes

有人知道将glTexCoord2f应用于通用多边形的通用方法吗? 对于圆、三角形和四边形,这是非常直观的,但多边形有点乱

例如,我的等边三角形渲染为:

void Triangulo::RenderizaPontos(){
    glColor3f(red, green, blue);
    glLineWidth(grafite);

    glBegin(GL_TRIANGLES);
        glTexCoord2f(0.0f, 0.0f); glVertex2f(cantoesq.x, cantoesq.y);
        glTexCoord2f(0.5f, 1.0f); glVertex2f(cantoesq.x + base , altura + cantoesq.y);
        glTexCoord2f(1.0f, 0.0f); glVertex2f(cantoesq.x + 2*base, cantoesq.y);

    glEnd();
}
问题在于通用多边形。他的班级如下:

Poligno::Poligno(std::deque<Ponto> pontos):
ponto(pontos)
{
    prox = NULL;
    grafite = 1.0;
}

void Poligno::RenderizaPontos(){
    int tamanho, i;

    tamanho = ponto.size();

    glColor3f(red, green, blue);
    glLineWidth(grafite);

    glBegin(GL_POLYGON);
    for(i = 0; i < tamanho; i++)
        glVertex2f(ponto[i].x, ponto[i].y);  
    glEnd();
}
Poligno::Poligno(std::deque pontos):
庞托(庞托斯)
{
prox=NULL;
格拉菲特=1.0;
}
void Poligno::RenderizaPontos(){
内塔曼霍岛;
tamanho=ponto.size();
glColor3f(红色、绿色、蓝色);
glLineWidth(grafite);
glBegin(GL_多边形);
对于(i=0;i

有什么想法吗?

Err,您正在以错误的顺序调用
glTexCoord
glVertex
glVertex
基本上接受所有顶点参数(颜色、法线、texcoord、权重等),并在特定位置创建新顶点。在你打电话之前,你需要设置我刚才提到的一切。Ups!我的错。x) 现在坐标有意义了,谢谢!