Нам необходимо только правильно установить значения А, В, Си 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 // ширина экранного окна в пикселах