QuickBasicNews

Зеркальное отображение

Прочитав эту статью вы узнаете как можно сделать зеркальное отображение в 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

 

Hosted by uCoz