При выполнении графических команд, надо прежде всего задать оператором графический экран.
Оператор SCREEN 12 задаёт графический экран размером 640*480 пикслей.
Оператор SCREEN 0 задаёт обычный текстовый экран. Этот экран используется. Если хотим из графического экрана перейти в текстовый. Экран при этом очищается.
При рисовании используется система координат, но начальная точка (0,0) находится в левом верхнем углу.
Горизонтальная ось Х идёт слева направо и имеет от 0 до 640 точек. Ось У идёт сверху вниз и имеет от 0 до 480 точек.
Точку на экран ставят с помощью команды PSET (x, y), цвет, где х, y –координаты точки, параметр цвет есть число от 1 до 16 (не обязателен).
Пример:
|
SCREEN 12 'обязательно
PSET (320, 240),14 'жёлтая точка в центре экрана
Следующая программа рисует случайную точку случайным цветом.
|
SCREEN 12
RANDOMIZE TIMER
DO
x = INT(RND * 640) 'x координата
y = INT(RND * 480) 'y координата
v= INT(RND * 16) 'цвет
PSET (x, y), v 'ставим точку с этим цветом на экран
LOOP UNTIL INKEY$ <> ""
|
|
Следующая программа рисует синусоиду и косинусоиду:
SCREEN 12
'начинается цикл, где х меняется от 0 до 640 с шагом 0.01
FOR x = 0 TO 640 STEP .1
'считаем координаты у , учитывая, что начало координат находится в левом верхнем углу.
SINY=240 + 200 * SIN(x / 30)
COSY=240 + -200 * COS(x / 30)
'ставим на экран 2 точки разного цвета
PSET (x, SINY), 2
PSET (x, COSY), 4
NEXT x
|
Изображение линий и прямоугольников
Линию можно провести с помощью оператора LINE.
Например,
LINE (A, B) - (C, D), цвет - проводит линию из точки с координатами (А,В) до точки с координатами (С, D) с заданным номером цвета (цвет указывать необязательно)
Для изображения прямоугольника используется оператор LINE (A, B) - (C, D), цвет, В (от слова ВОХ)
Оператор , LINE (A, B) - (C, D), цвет, ВF (от слова ВОХ FILL)
Следующий пример удобно просмотреть пошажно командами DEBUG->STEP (F8) и VIEW->OUTPUT SCREEN (F4) .
SCREEN 12
LINE (0, 0)-(640, 480)'прямая по диагонали экрана
LINE (20, 50)-(70, 100), , B 'квадрат
LINE (80, 80)-(100, 100), 2, B 'зелёный квадрат
LINE (200, 110)-(250, 300), 4, BF 'красный заполненный квадрат
|
Во второй строке видно, что если не хотим указывать цвет, оставляем это место пустым.
Рассмотрим программу, рисующую отрезки со случайными концами и цветом.
SCREEN 12
RANDOMIZE TIMER 'включаем генератор случайных чисел
DO
'генерируем координаты и цвет
a = INT(RND * 640)
b = INT(RND * 480)
c = INT(RND * 640)
d = INT(RND * 480)
v = INT(RND * 16 + 1)
'проводим линию
LINE (a, b)-(c, d), v
'цикл продолжается до нажатия клавиши
LOOP UNTIL INKEY$ <> ""
|
Круги и эллипсы рисуются с помощью оператора CIRCLE, к которому добавляются параметры.
CIRCLE x,y,радиус,цвет,начало,конец,коэффициент сжатия
|
Здесь:
-
x и y – координаты центра.
-
Цвет – число от 1 до 16.
-
Начало – начальное значение дуги в радианах, по умолчанию 0.
-
Конец – конечное значение дуги в радианах, по умолчанию 2*pii (pii = 3,14...)
-
Коэффициент сжатия – отношение высоты эллипса к его ширине, для круга равен 1.
-
В случае круга достаточно параметров центра круга и радиуса.
Приведём пример изображения круга и эллипса.
Его построение можно исследовать, нажимая клавиши F8 и F4.
SCREEN 12
CIRCLE (100, 100), 30 'обычный белый круг
CIRCLE (200, 100), 30, 4 'красный круг
CIRCLE (200, 300), 30, 9, 3.14 'синяя дуга
CIRCLE (400, 180), 60, 2, , , 4 'зелёный овал
Рассмотрим программу, где меняется коэффициент сжатия.
|
SCREEN 12
FOR к = 1 TO 16 STEP 0.1
CIRCLE (150, 240), 150, 2, , , к
NEXT
FOR к = 1 / 16 TO 1 STEP .1
CIRCLE (460, 240), 150, 4, , , к
NEXT
|
|
Достарыңызбен бөлісу: |