Нам необходимо только правильно установить значения А, В, Си Du начертить точечный график с помощью следующего кода:

GLdouble А. В. С. D. х; А = screenWidth / 4.0; В = 0.0: С - screenHeight /2.0: О = С:

glBegin(GL_POINTS):

for(x =0: х < 4.0: х += 0.005)

glVertex2d(A * х + В. С * f(x) + 0):

glEndO: glFlushO:

2.3. Создание рисунков из линий В листинге 2.7 программа для рисования точечного графика приведена полностью для демонстрации того, как соединяются вместе ее различные блоки. Начальные установки похожи на те, которые были в программе рисования трех точек в листинге 2.5. Заметим, что ширина и высота экранного окна задаются как константы и используются внутри кода по мере необходимости.

Практическое упражнение

2.2.1. Точечные графики для произвольной функции f()

Рассмотрим рисование точечного графика функции f(.) аналогично тому, который приведен в примере 2.3, если известно, что при изменении х от xhw до хЫф f(x) принимает значения от y]ow до yhiRh. Найдите необходимые коэффициенты масштабирования и сдвига из уравнения 2.1, так чтобы точки всегда располагались в пределах экранного окна шириной W и высотой H пикселов.

2.3. Создание рисунков из линий Гамлет: Видите вы вон то облако в форме верблюда?

Полоний: Ей-богу, вижу, и действительно, ни дать ни взять - верблюд.

Гамлет: По-моему, оно смахивает на хорька.

Уильям Шекспир, Гамлет (пер. Б. Пастернака, действие 3, картина 2)

Как уже говорилось в главе 1, рисование линий является основой компьютерной графики, и почти в каждой графической системе имеются «драйверные» подпрограммы для рисования прямых линий. OpenGL упрощает рисование линий: воспользуйтесь GLLINES как аргументом для функции gIBeginO и передайте в нее две концевые точки в качестве вершин. Тогда для рисования прямой линии между точками (40, 100) и (202,96) можно использовать следующий код:

glBegin (GLJ.INES);

// use constant GL_LZNES here

// используем здесь константу GLJ.ZNES

glVertex2i(40. 100):

glVertex2i(202. 96):

glEndO: Листинг 2.7. Полный текст программы вычерчивания «точечного графика» функции #include<windows.h> // use proper includes for your system // используйте допустимые для вашей системы // включаемые файлы #include<math.h> #include<gl/Gl.h> #include<gl/glut.h> const int screenWidth - 640: // width of screen window in pixels // ширина экранного окна в пикселах


⇐ Предыдущая| |Следующая ⇒