Basic 1969 г.

Глава 17 - графика.


Глава 17

Графика

Краткое содержание: PLOT, DRAW, CIRCLE, POINT

Эта глава описывает возможности компьютера Zx-SPECTRUM по
отображению графической информации. Экран компьютера содержит 22
строки по 32 символа в каждой, что составляет 22 х 32 ■ 704 сим-
вольные позиции. Как вы уже поняли из 16 главы, каждая символьная
позиция представляется квадратом 8x8 точек, называемых пикселя-
ми. Пиксель задается его координатами. Первое число задает коор-
динату х. то есть удаление (в пикселях) до левой границы экрана.
Координаты записываются в скобках, так (0.0), (255,0), верхний
правый и верхний левый углы экрана. Оператор PLOT X, Y вызывает
высвечивание закрашивающим цветом (INK) пикселя с указанными ко-

ординатами. Например, программа:

10 PLOT INT (RND*256), INT (RND*176)
20 INPUT да
30 GOTO 10

Будет высвечивать некоторый случайный пиксель, при каждом на-
жатии ENTER. Есть и более интересные программы. Например, следую-
щая программа вычерчивает график функции синус (х) для х в интер-
вале от нуля до 2*Р1:

10 FOR N«0 то 255

20 PLOT N,88+80*SIN (N/128»PI)

30 NEXT N

или программа:

10 FOR N=0 то 255
20 PLOT N,80*SQR (N/64)
30 NEXT N

Которая чертит график SQR (x) (часть параболы) в интервале от
нуля до 4. Помните, что координаты пикселей отличаются от адреса-
ции срок и позиций в подкоманде "AT". Пользуйтесь диграммой из
главы 15. Помощь при построении изображений вам могут оказать
операторы: DROW, CIRCLE. Оператор DRAW чертит линию, заданную в
форме: DRAW X, Y. Началом линии является пиксель, на котором за-
вершился один из предыдущих операторов PLOT, DRAW или CIRCLE
(этот пиксель называется текущей PLOT-позицией. Операторы RUN,
CLEAR, CL и NEW устанавливают ее в левый нижний угол экрана, т.о.
оператор DRAW задает длину и направление вычерчивания линии, но
не начальную точку. Поэксперемеитируйте с такими командами:

PLOT 0,100: DRAW 80, -35
PLOT 90,150: DRAW 80, -35

Чертить можно также в цвете, но при этом надо иметь в виду,
что цвет устанавливается для целой символьной позиции и не может
быть задан для отдельного пикселя. Следующая программа демонстри-
рует это:

10 BORDERO: PAPER 0: INK 7: CLS: REM BLACK OUT SCREEN
20 LET X1=0: LET Y1»Q: REM START OF LINE
30 LET С*1: REM FOR INK COLOUR, STARTING BLUE
40 LET X2 =I NT (RND*256): LET Y2-INT (RND*176): REM

RANDOM FINISH OF LINE
50 DRAW INK С; X2-X1, Y2-Y1

60 LET X1 *X2: LET Y1*Y2: REM NEXT LINE STARTS WHERE

LAST ONE FINISHED
70 LET C-C+l: IF C=8 THEN LET C-l: REM NEW COLOUR
80 GO TO 40

Вы можете использовать в операторах PLOT и DRAW управляющие
символы: PAPER, INK, FLUSH, BRIGHT, INVERSE и OVER так же, как и
в операторах PRINT и INPUT. Управляющие символы записываются меж-
ду ключевым словом и координатами и оканчиваются запятой или точ-
кой с запятой (см. Строку 50). При помощи DRAW можно также вычер-
тить отрезок дуги, используя для этого дополнительное число, за-
дающее угол (в радианах) этой дуги:
DRAW X, Y, А

Если "А"-положительно, то дуга вычерчивается влево, а если от-
рнцательно-то вправо. При "А" равном 2*Р1 вычерчивается полная
окружность.

например: 10 PLOT 100,100: DRAW 50,50, PI
вычертит полуокружность с начальной точкой (100,100) и крнечной
точкой (150,150). Вычерчивание начинается в направлении
юго-восток и заканчивается в направлении на северо-запад. Опера-

тор CIRCLE вычерчивает полный круг, задаваемый координатами его
центра и радиусом:

CIRCLE X, Y, РАДИУС

Как и в операторах PLOT и DRAW вы можете указать в этом опера-
торе различные цвета. Функция POINT возвращает характеристики
цвета заданного пикселя. Например, строка программы:

CLS: PRINT POINT (0,0): PLOT (0,0): PRINT POINT (0,0) выведет:
PAPER 7: INK 0

Допускается также задавать управляющие символы: INVERSE и OVER
9 операторе PLOT. по умолчанию они предполагаются равными нулю
(отключено), но вы можете задать и единицу, при этом: PLOT
INVERSE 1 - устанавливает для заданного пикселя цвет фона. PLOT
OVER 1 - изменяет цвет пикселя на противоположный, если был зак-
рашивающий цвет, то становится цвет фона и наоборот. PLOT INVERSE
1; OVER 1; - сохраняет цвет пикселя без изменений, но меняет те-
кущую PLOT-позицию. Другой пример использования OVER с записью
чериым по белому:

PLOT 0,0: DRAW OVER 1; 255,175
вычерчивает линию по диагонали. Теперь попробуйте:

PLOT 0,0: DRAW INVERSE 1; 255,175
и перечертите ее командой:
DRAW OVER 1; -250, -175

Это не изменит картинку, т.к. при черчении как вперед, так и
назад используются одни и те же пиксели. Имеется способ получения
необычных цветов в одном квадрате, с использованием определяемых
оператором символов. Выполните эту программу:
1000 FOR N»0 ТО б STEP 2
1010 POKE USR "a" +N, BIN 01010101:

POKE USR "a" +N+1, BIN 10101010
1020 NEXT N

Она задает определяемый пользователем символ для шахматной
доски, который закрепляется за клавишей "Ан. Для символа исполь-
зуется красный закрашивающий цвет и желтый цвет фона, но на экра-
не этот символ будет казаться оранжевым. Еще один пример, прог-
рамма, которая строит график некоторой функции. На первый ее зап-
рос вы отвечаете числом "NM, задающим область значений аргумента
(т. е. график будет строится для значений аргумента в диапазоне
от -N до +N). Второй ответ-это выражение в виде символьной стро-
ки , задающей функцию, использующую "Xм в качестве аргумента:
10 PLOT 0,87: DRAW 255,0
20 PLOT 127,0: DRAW 0,175
30 INPUT S, E*
40 FOR F®4) TO 255

50 LET Xs (F-128) ♦S/128: LET Y=VAL EB

60 IF ABS Y>87 THEN LET T-0: GOTO 100

70 IF NOT T THEN PLOT F, Y+88: LET T«l: GOTO 100

80 DRAW 1, Y-OLDY

100 LET OLDY »I NT (Y + 5)

110 NEXT F

Выполните ее, введя 10 для числа MN" и "10*TAN Xм для функции.
Будет вычерчен график функции: TG X, при X, изменяющемся от -10
до +10.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Scorpion Club - Схема дороботки AY на Scorpion ZS.
Список BBS - Список работающий BBS.
Charts - indexed.
IZHnews #0C - Nonsense.
Разное - интервью с автором нашумевшей демки под VIC-20 - Viznut/PWP.

В этот день...   21 ноября