1.22. РИСОВАНИЕ ГРАФИКА ФУНКЦИИ ОДНОЙ ПЕРЕМЕННОЙ НА ЯЗЫКЕ FORTRAN

1.22.1. Вывод графических данных на экран

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

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

Закрыть

Порядок задания окна вывода и построения графика таков.

1.      Начало.

2.      Ввести значения а и b границ отрезка, на котором будет построен график (а и b задают границы окна вывода по х).

3.      Задать или найти границы окна вывода по у: c и d.

4.      Задать видеоокно и окно вывода. Это выполняется подпрограммой SETVIEWPORT и функцией SETWINDOW.

5.      Вывести в нем оси координат.

6.      Задать х = а и шаг dx изменения аргумента х.

7.      Пока х <= b, выполнить следующие операции.

Вычислить y = f(x).

Вывести в окне вывода точку с координатами (х, у). (Вывод точки при работе с вещественными координатами двойной точности выполняется функцией SETPIXEL_W.)

Изменить значение аргумента х = х + dx.

Конец цикла 7.

8.      Конец.

Более подробно алгоритм построения графика функции, позволяющий осуществлять масштабирование по осям излагается, например в [Задачник по программированию для математиков].

В графике экран дисплея представляется в виде прямоугольной равномерной сетки с шагом единица по оси x и  у в физической системе координат. Массив прямоугольных ячеек, на которые эта сетка разбивает всю область экрана, называется растровым массивом.

Закрыть

Начало физической системы координат находится в левом верхнем углу, ось x направлена влево, а ось у вниз.

 Видеоадаптер – это устройство, которое обеспечивает взаимодействие между процессором и устройством отображения на экране монитора. Видеоадаптеры обеспечивают отображение данных в двух режимах: текстовом и графическом.

Закрыть

Каждая ячейка соответствует одному пикселю. Растровое изображение создается путем закраски ячеек растрового массива. Каждому пикселю растра можно независимым образом поставить в соответствие цвет, интенсивность и другие характеристики. При создании черно-белого изображения для хранения информации о цвете пикселя достаточно одного бита. Цветное изображение создает комбинация базовых цветов. Например: красный (red), зеленый (green) и синий (#008400) (RGB). Задавая различную интенсивность базовых цветов, можно воспроизвести всю палитру цветов, различаемую человеческим глазом. В системе цветов RGB каждый пиксель содержит 3 точки, каждая из которых отвечает за свой цвет. Комбинируя эти цвета и их интенсивности можно управлять цветом одного пикселя и, следовательно, всего изображения. Человеческий глаз не в состоянии различать отдельные точки в силу их маленького размера, и поэтому пиксель воспринимается как одноцветное пятно.

Закрыть

В текстовом режиме для вывода одного символа используется прямоугольник пикселей. Символ передается в видеоадаптер в виде 2 байтов. Первый байт – код символа, второй байт – атрибуты: цвет символа и фона. Вывод текстовых данных в видеоокне выполняется операторами PRINT и WRITE и обращением к подпрограмме OUTTEXT. По умолчанию устанавливается шрифт Courier New с размером 8*16 пикселей. После вызова функции 

TYPE(WINDOWCONFIG)gc

STAT4=GETWINDOWCONFIG(gc)

число доступных в текущий момент в текстовом режиме строк  задается gc.numtextrows, а столбцов – gc.numtextcols.

В проектах с графикой вывод и в текстовом и в графическом режиме выполняется в видеоокно. Видеорежим и параметры видеоокна устанавливаются функцией SETWINDOWCONFIG. В проекте со стандартной графикой в начале изображение отображается на полный экран без панели системного меню и полос прокрутки. Далее щелчок левой клавишей мыши на пространстве окна вывода приводит к получению полос прокрутки и системной панели Windows. В каждом программном компоненте, в котором нужно обратиться к графическим процедурам и функциям, необходима ссылка на библиотеку DFLIB (USE DFLIB). Этот модуль содержит графические процедуры и функции, используемые при работе с графикой, именованные константы и определения производных типов.

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

Текстовое окно задается подпрограммой SETTEXTWINDOW.

Закрыть

Например, вызов подпрограммы CALL SETTEXTWINDOW(15,40,20,60) задает текстовое окно в виде прямоугольника с координатами левого верхнего угла (15,40) и (20,60) – правого нижнего угла.

Видовой порт (графическое окно вывода) и окно вывода (см. рисунок 1.14) можно задать подпрограммой CALL SETVIEWPORT(x1, y1, x2, y2)

Закрыть

Рисунок 1.16. Видеоокно и окно вывода

x1, y1 – координаты левого верхнего угла окна вывода,

x2, y2 координаты правого нижнего угла окна вывода.

Тип параметров INTEGER(2). Подпрограмма переопределяет графический видовой порт и задает окно вывода. Начало видовой системы координат после вызова

CALL SETVIEWPORT(x1, y1, x2, y2)

будет совпадать с левым верхним углом окна вывода. Координаты (x1, y1, x2, y2) задаются в физической системе координат. Все последующие преобразования окна вывода функцией SETWINDOW выполняются в видовой, а не в физической системе координат.

Можно установить для видео порта свою систему координат, используя подпрограмму SETWINDOW.