Открыть GL: рисовать прямоугольники с границами? - PullRequest
4 голосов
/ 06 апреля 2011

enter image description here

Проверьте созданное мной изображение, но я хочу создать прямоугольники с границами и установить другой цвет фона. Как я могу это сделать?

glRectf(top_left_x, top_left_y, bottom_right_x, bottom_right_y)?




if loop==0:
            ratio = 0.10
            glBegin(GL_QUADS)
            while ratio <= 1.0:
                width = window_width/2
                height = window_height
                long_length = width * ratio
                short_length = height* (1.0 - ratio)
                top_left_x = (width - long_length) / 2.0
                top_left_y = (height - window_height * (1.0-ratio)) /2
                bottom_right_x = top_left_x + long_length
                bottom_right_y = top_left_y + short_length
                glColor(1.0,1.0,1.0,0.5)
                glVertex3f(top_left_x, top_left_y, 0.0)
                glVertex3f(top_left_x + long_length, top_left_y, 0.0)
                glVertex3f(bottom_right_x,bottom_right_y, 0.0)
                glVertex3f(bottom_right_x-long_length,bottom_right_y, 0.0)
                ratio += 0.05
            glEnd()

1 Ответ

7 голосов
/ 06 апреля 2011

Вы можете нарисовать прямоугольник, не заполненный таким образом:

glBegin(GL_LINES);



glVertex2d(top_left_x, top_left_y);             
glVertex2d( top_right_x, top_right_y);              
glVertex2d( bottom_right_x,bottom_right_y);             
glVertex2d(bottom_left_x,bottom_left_y);
glVertex2d(top_left_x, top_left_y);                 
glEnd();    

OpenGL использует конечный автомат.Поэтому для изменения цвета просто поставьте:

glColor3f (R, G, B);

перед вашими примитивами рисования.

Итак, смешивая его, ваш шаг должен быть:

  1. выберите заливкуцвет
  2. рисование заливки прямоугольника с помощью glRectf
  3. выбор цвета границы
  4. рисование незаполненного прямоугольника с кодом, который я разместил

Эти шаги повторяются для каждого прямоугольникаВы рисуете, конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...