Практика программирования (Бейсик, Си, Паскаль)



         

Определение области графического вывода и выбор системы координат - часть 2


Программа 8_01.bas

RЕМ Демонстрация графических окон

SCREEN 12 :' Переход в графический режим

VIEW (10,10)-(210,210),2,1 : ' 0бъявление графического окна

LINE (0,100)-(200,100)

LINE (100,0)-(100,200)

SLEEP : ' Задержка до нажатия любой клавиши

VIEW SCREEN (310,10)-(510,210),4,14: ' Новое окно

LINE (310,110)-(510,110)

LINE (410,10)-(410,510)

SLEEP

END

В момент создания зоны вывода первого типа (VIEW) текущая точка устанавливается в центр окна, тогда как для области вывода второго типа (VIEW SCREEN) текущая точка переводится в центр экрана и может оказаться за пределами окна. С учетом последнего замечания построения в окне можно вести не только в абсолютных координатах, определяемых описанными выше способами, но и в относительных координатах. Последние задаются в приращениях относительно положения текущей точки и сопровождаются добавкой STEP:

Программа 8_02.bas

RЕМ Построения в относительных координатах

SCREEN 12

VIEW (10,10)-(210,210),2,1

LINE STEP(0,0)-STEP.(-20,0) : ' 0трезок белого цвета

C0L0R 4 : ' Цвет рисования - красный

LINE STEP(0,0)-STEP(0,-20)

C0L0R 2 : ' Цвет рисования - зеленый

VIEW SCREEN (310,10)-(510, 210) , 4,14

LINE STEP(0,0)-STEP(-20,0)

END

В приведенном выше примере первый отрезок белого цвета начинается в центре области (нулевые смещения начальной точки отрезка означают совпадение с положением текущей точки). Конец отрезка смещен на 20 пикселов по горизонтали влево. В эту же точку перемещается СР после построения первого отрезка. Второй отрезок красного цвета начинается из конца первого отрезка

и продолжается вверх по вертикали на 20 пикселов (в направлении, противоположном оси у). Для второго окна текущая точка оказалась снаружи, поэтому горизонтальный отрезок зеленого цвета мы не увидим.

Программирование перемещений в целочисленных координатах пикселов далеко не всегда бывает удобным с точки зрения прикладной программы. Например, чтобы построить график синусоиды, ее амплитуду придется умножить на достаточно большое число, чтобы увеличить размах по оси у, принудительно увеличить значение функции, чтобы исключить отрицательные координаты точек, растянуть значение координаты х таким образом, чтобы на видимом участке оказались один-два более или менее красивых периода функции, и учесть специфику в направлении оси у (Y = у - уmах). Система QBasic берет все эти хлопоты на себя. Достаточно лишь после объявления области вывода указать пределы изменения координат (х,у) в отображаемых объектах с помощью оператора WIND0W:




Содержание  Назад  Вперед