0

小さな正方形で埋められた平面をどのように設定できるかわかりません(これにより、より良い照明効果を得ることができます)。

単一の正方形を描画するための私のコードは次のとおりです。

void drawSquare(float x1, float y1, float x2, float y2) {
    glBegin(GL_QUADS);
        glVertex3f(x1, y1, 0.0f); // The bottom left corner  
        glVertex3f(x1, y2, 0.0f); // The top left corner  
        glVertex3f(x2, y2, 0.0f); // The top right corner  
        glVertex3f(x2, y1, 0.0f); // The bottom right corner    
    glEnd();
}

では、ネストされたループを実行して、サーフェスを小さな正方形の数で埋めるにはどうすればよいでしょうか。小さい正方形の座標については少しわかりません。

4

1 に答える 1

2

正方形のサイズを計算し、それを小さな断片に分割します。このようなもの(テストされていない):

void drawSquare(float x1, float y1, float x2, float y2, int xtiles, int ytiles) {
    float tile_width  = (x2 - x1) / xtiles;
    float tile_height = (y2 - y1) / ytiles;
    int x, y;
    glBegin(GL_QUADS);
        for (y = 0; y < ytiles; y++) {
            for (x = 0; x < xtiles; x++) {
                glVertex3f(x1 + x * tile_width, y1 + y * tile_height, 0.0f); // The bottom left corner  
                glVertex3f(x1 + x * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top left corner  
                glVertex3f(x1 + (x + 1) * tile_width, y1 + (y + 1) * tile_height, 0.0f); // The top right corner  
                glVertex3f(x1 + (x + 1) * tile_width, y1 + y * tile_height, 0.0f); // The bottom right corner    
            }
        }
    glEnd();
}
于 2011-10-18T06:01:43.983 に答える