Зеркальное отображение
Прочитав эту статью вы узнаете как можно сделать зеркальное отображение в QBasic’e. Для этого вам понадобится знать как работают два оператора: GET и PUT. Первый из них даёт возможность сохранить любую прямоугольную область экрана в числовом массиве. PUT воспроизводит изображение в произвольном месте экрана. Общая формв этих операторов выглядит следующим образом:
GET (x1, y1) - (x2, y2), имя
PUT (x1, y1), имя, режим
x1, x2, y1, y2 - координаты; имя - имя массива, в котором хранится изображение; ключевое слово “режим ” не обязательный параметр, оно определяет режим воспроизведения сохраненного изображения. А вначале проги не забудьте определить массив ( DIM имя(n) ).
Итак теперь я, с чистой совестью, могу приступить к основной работе. Сам принцип зеркального отображения предельно прост. В помощью опера GET мы будем брать каждую линию рисунка слева напрово, а ложить их справа налево. Ну что просто? Теперь давайте рассмотрим пример зеркального отображения:
СLS: DEFINT A-Z - делаем все переменные целого типа
st:
INPUT “Введите значение х”, х
INPUT “Введите значение y”, y
INPUT “Введите значение r”, r
IF x + r > 160 THEN GOTO st: IF x < 1 THEN GOTO st: IF y < 1 THEN GOTO st:
IF r < 1 THEN GOTO st: IF x - r < 1 THEN GOTO st: IF y - r < 1 THEN GOTO st:
SCREEN 13: CIRCLE (x,y),r,4: z = x - рисуем круг по заданым координатам и задаём ещё одну переменную
FOR n = 1 TO 2 * r + 1 - задаём сколько раз выполнять дейсвие (количество линий в рисунке)
REDIM lin(2 * r) - обозначаем массив для линии
GET (x - r, y - r) - (x - r, y + r), lin - берём линию
PUT (z + 3 * r + 1, y - r), lin
x = x + 1: z = z - 1
NEXT n: END - Вот и всё!
АВТОР: Mr.Nice Guy
|