openGL gl将一种形状转换为8个不同的位置

时间:2018-10-27 04:57:50

标签: opengl

这是我想要的图像

这是我的照片

select CONVERT(varchar(10), DATEADD(DAY, -2, GETDATE()), 111)

我希望将我的图像转换成与我显示的图像相同的8个位置,我需要有关图像转换部分的帮助,将其转换为正确的位置。有人可以帮助我,并通过正确的方向指导我,谢谢。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用2个嵌套循环:

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    int    rows      = 2;
    int    columns   = 4;
    double tile_dist = 120.0;

    for ( int col = 0; col < columns; ++ col )
    {
          for (int row = 0; row < rows; ++ row )
          {
              glPushMatrix();
              glTranslated( col * tile_dist, row * tile_dist, 0.0 );
              glScaled(1,1,1);
              draw_ring();
              glPopMatrix();
          }
    }
    glFlush();
}

如果要使用单个循环绘制它,则必须计算循环中的当前行和列。磁贴仍必须逐行或逐列绘制。计算取决于控制变量(col = i % tile_xcolumns = i / columns)的行和列

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    int    columns   = 4;
    double tile_dist = 120.0;

    for ( int i = 0; i < 8; ++ i )
    {
          int col = i % columns;
          int row = i / columns;

          glPushMatrix();
          glTranslated( col * tile_dist, row * tile_dist, 0.0 );
          glScaled(1,1,1);
          draw_ring();
          glPopMatrix();
    }
    glFlush();
}