Простая форма с манипулированием пикселями с OpenGL в Linux - PullRequest
0 голосов
/ 15 февраля 2012

Я хочу создать окно 800X600, которое будет просто показывать некоторый круг и иметь возможность манипулировать пикселями формы каждую миллисекунду и показывать результат пользователю. нет взаимодействия между пользователем и формой (нет клика, нет dblclick,…), он просто показывает несколько кругов одного цвета и линии с разными цветами пикселей (каждая строка может иметь разные цвета пикселей) также я хочу иметь возможность изменить систему координации, я имею в виду изменить ее с левого верхнего угла до центра окна. Может ли кто-нибудь помочь мне сделать это с некоторым примером кода? ссылки? учебник

1 Ответ

1 голос
/ 15 февраля 2012

OpenGL не имеет встроенной функции окружности, но имеет линейные функции, и вы можете имитировать окружность, используя многоугольники. Чтобы нарисовать линии, вы можете сделать что-то вроде этого:

glBegin (GL_LINES);
// First line segment
glVertex2f (x0, y0);
glVertex2f (x1, y1);
// Second line segment
glVertex2f (x2, y2);
glVertex2f (x3, y3);
glEnd ();

Чтобы нарисовать круг, вы можете написать цикл, чтобы нарисовать веер треугольника. Что-то вроде:

glBegin (GL_TRIANGLE_FAN);
// Center point
glVertex2f (cx, cy);
for (segment = 0; segment < maxSegments; segment++)
{
    double angle = delta * segment;
    double x = cx + cos (angle) * radius;
    double y = cy + sin (angle) * radius;
    glVertex2f (x, y);
}
glEnd ();

В этом случае дельта равна 2 * pi / maxSegments, а maxSegments - это количество сегментов, которое вы хотите в приближении круга.

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