Абсолютные и относительные координаты.




Координаты, которые указывают местоположение точки, учитывая систему координат экрана, называются абсолютными координатами. Например, PSET(100,120) — означает, что на экране появится точка на 100 пикселей правее и 120 пикселей ниже левого верхнего угла, т.е. начала координат экрана.

Координаты точки, которая была нарисована последней, хранятся в памяти компьютера, Эта точка называется точкой последней ссылки (ТПС). Например, если при рисовании линии указать только координаты одной точки, то на экране будет проведен отрезок от ТПС до указанной точки, которая после этого сама станет ТПС. Сразу после включения графического режима точкой последней ссылки является точка в центре экрана.

Кроме абсолютных в QBASIC’е используются еще и относительные координаты. Эти координаты показывают величину перемещения ТПС. Чтобы нарисовать новую точку, используя относительные координаты, нужно использовать ключевое слово STEP(X,Y), где Х и У — смещение координат относительно ТПС.

Например, PSET STEP(-5,10) — при этом появится точка, положение которой будет левее на 5 и ниже на 10 точек относительно точки последней ссылки. То есть, если точка последней ссылки имела координаты, например, (100,100), то получится точка с координатами (95,110).

Рисование линий и прямоугольников.

LINE(X1,Y1)-(X2,Y2),C — рисует отрезок, соединяющий точки (Х1,У1) и (Х2,У2), цветом С.

Например, LINE(5,5)-(10,20),4

Результат: 5 10

 

 

Если не указывать первую координату, то будет проведен отрезок из ТПС в точку с координатами (Х2, У2).

LINE(X1,Y1)-(X2,Y2), C, В — рисует контур прямоугольника с концами диагонали в точках (Х1,У1) и (Х2,У2), С — цвет, В — маркер прямоугольника.

 

Например, LINE(5,5)-(20,20), 5, В

Результат: 5 20


 

 

 

Если вместо маркера В указать ВF, то будет нарисован закрашенный прямоугольник (блок):

LINE(X1,Y1)-(X2,Y2),C, BF

Например, LINE(5,5)-(20,20),5, BF

Результат: 5 20

 

 

 

 

 

 

Рисование окружностей, элипсов и дуг.

CIRCLE(X,Y), R, C — рисует окружность с центром в точке (Х,У), радиусом R, цветом С.

Например, CIRCLE(50,50), 10, 7

 

Результат:

 

 

50

 

CIRCLE(X,Y), R, C, f1, f2 — дуга окружности, f1 и f2 значения углов дуги в радианах от 0 до 6.2831, определяющие начало и конец дуги.

 
 

 

 


3.14 0

 

 

Например,CIRCLE(50,50), 10, 7, 0, 3.14

Результат: 40 50 60

 

 

 

Если перед значением угла поставить знак “-”, то от центра к концу дуги будет проведен радиус.

Например,CIRCLE(50,50), 10, 7,-0, -3.14

40 50 60

 
 


 

 

CIRCLE(X,Y), R, C,,, е — элипс, с центром в точке(Х,У), радиусом R, е -- отношение вертикальной оси к горизонтальной.

Например, CIRCLE(50,50), 20, 15, 7,,, 1/2

Результат: 30 50 70


60 60

В случае необходимости, после параметра С можно указать значения углов дуги элипса f1 и f2.

 

PAINT(X,Y), C, K — закрасить цветом С фигуру, нарисованную цветом К, (Х,У) — точка, лежащая внутри фигуры. Если цвет контура совпадает с цветом закраски, то указывают только один цвет: PAINT(X,Y), C

Например, надо закрасить окружность CIRCLE(150,50), 40, 5 цветом 4. Для этого надо выполнить оператор PAINT(150,50), 4, 5, т.к. центр окружности точно лежит внутри закрашиваемой фигуры, мы использовали его как внутреннюю точку.

 

Решение задач.

Задача 1.

Нарисовать четыре точки, которые лежат на одной горизонтальной прямой на расстоянии 20 пикселей друг от друга. Точка последней ссылки имеет координату (15, 20).

Решение:ПРИМЕЧАНИЯ.

SCREEN 9: COLOR 5,15:REM графич. режим, фон 5, цвет 15

CLS:REM очистка экрана

PSET(15,20):REM рисует точку с координатами (15,20)

PSET STEP(20,0):REM рисует точку со смещением
PSET STEP(20,0):REM относительно последней на 20

PSET STEP(20,0):REM пикселей по оси ОХ.

END

 

Результат: 15 35 55 75


 

20 ....

 

 

Задача 2.

Нарисовать три окружности, центры которых лежат на одной горизонтальной прямой на расстоянии 30 пикселей друг от друга. Радиусы окружностей равны 20, центр первой окружности совпадает с центром экрана.

Решение.

SCREEN 9 120 150 180

CLS

CIRCLE STEP(0, 0), 20, 15 100

CIRCLE STEP(30, 0), 20, 15

CIRCLE STEP(30, 0), 20, 15

END

 

Задача 2.

Построить четырехугольник с вершинами (10,15), (30,25), (30,5) и (20,0).

Решение:

SCREEN 9:CLS

LINE (10,15)-(30,25), 5

LINE — (30, 5),5

LINE — (25,0), 5

LINE — (10,15), 5

END

РЕЗУЛЬТАТ: 5 10 20 25 30

 

 

15

 

 

 

Задача 3.

Напишите программу рисования произвольной картинки.

Полезный совет: Прежде, чем начать писать программу, нарисуйте картинку на листке в клетку и расставьте нужные координаты. Вы сразу увидите, какие числа будут в качестве операндов в Вашей программе.

Например,

20 40 50 80


 

 

 

 

 

 

Решение:

SCREEN 9: COLOR 10, 0: CLS

LINE (20,30) - (80,70), 10, B:REM СТЕНА

LINE (20,30) - (50,10), 10:REM КРЫША

LINE - (80,30), 10:REM КРЫША

CIRCLE (50, 50), 10, 10:REM ОКНО

PAINT(50, 50), 2, 10:REM ЗАКРАШЕНО ЗЕЛЕНЫМ ЦВЕТОМ

END

 

Рассмотрим решение этой задачи в общем виде. Обозначим высоту домика через H, длину через L, высота крыши будет равна L/2. Пусть левый верхний угол стены домика имеет координату (x,y), тогда координаты фигур, составляющих домик будут выглядеть следующим образом:

X X+L/2 X+L

 
 


Y-L/2

 

 

Y

 

Y+H/2

 


Y+H


Оформив задание координат и размеров домика через INPUT, каждый раз мы будем получать рисунки разного размера и в разных местах экрана.

Программа примет вид:

CLS

INPUT “X=“;X

INPUT “Y=“;Y

INPUT “H=“;H

INPUT “L=“;L

SCREEN 9: COLOR 10, 0: CLS

LINE (X,Y) - (X+L,Y), 10, B:REM СТЕНА

LINE (X,Y) - (X+L/2,Y-L/2), 10:REM КРЫША

LINE - (X+L,Y), 10:REM КРЫША

CIRCLE (X+L/2, Y+H/2), 10, 10:REM ОКНО

PAINT(X+L/2, Y+H/2), 2, 10:REM ЗАКРАШЕНО
END: REM ЗЕЛЕНЫМ ЦВЕТОМ

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: