Основные графические операторы: line , circle , draw



 

К основным графическим операторам будем относить операторы построения графических примитивов: горизонтальных, вертикальных и наклонных отрезков прямых, замкнутых прямоугольников – оператор line; окружностей, овалов, круговых секторов и дуг – оператор circle, различных кривых, заданных в виде точек –оператор pset, закраски внутренней области замкнутых кривых многоугольников.

 

Оператор line

 

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

 

Формат оператора

 

line [step](x0,y0)-[step](x1,y1)[<,цвет>][<,b[f]>]

где

step атрибут определяющий относительные координаты (x0,y0) и (x1,y1);
( x 0, y 0), ( x 1, y 1) параметры (атрибуты), задающие абсолютные координаты начала и конца отрезка прямой в графической системе координат, если не задан в явном виде атрибут step, в противном случае эти параметры определяют смещение концов отрезка (по отношению к ранее изображенной точке). Если первая пара координат (x0,y0) отсутствует, то отрезок вычерчивается от текущей позиции курсора до точки с координатами (x1,y1), при этом в операторе сохраняется черточка перед (x1,y1);
<цвет> цвет контура (изображения), числовая константа, либо идентификатор переменной целого типа в диапазоне от 0 до 7; если <цвет> не задан, то он берется из оператора color;
< b > параметр, определяющий построение прямоугольника, тогда (x0,y0) – координаты верхней левой вершины, (x1,y1) – координаты нижней правой вершины, то есть отрезок прямой данным оператором определяет диагональ прямоугольника;
< bf > параметр, предписывающий осуществить закраску внутренней области прямоугольника.

 

Рассмотрим следующий пример:

 

rem построение прямоугольников A, B, C

cls

screen 9, 0 ‘ включение графического режима работы, 9 – разрешающая способность 640х350, 0 – включение цветного изображения, этот параметр можно опустить

color 7, 1 ‘ 7 – белый цвет переднего фона, контура изображения; 1 – синий цвет, цвет заднего фона

rem посторенние прямоугольника A

line(220,100)-(320,200),7, b ‘ построение прямоугольника – параметр b цвет контура 7 – белый цвет; (220,100) – координаты верхнего левого угла; (320,200) – координаты правого нижнего угла

rem посторенние прямоугольника B

line(100,100)-(100,200),7 ‘ прямая вертикальная линия белого цвета (7)  

line(100,200)-(200,200),4 ‘ прямая горизонтальная, нижняя линия красного цвета (4), если номер цвета в операторе line не совпадает с номером цвета переднего фона оператора color, то предпочтение отдается оператору line

line(200,200)-(200,100) ‘прямая вертикальная линия белого цвета, здесь параметр цвета опущен, поэтому цвет определяется цветом переднего фона оператора color

line(200,100)-(100,100),2 ‘ горизонтальная прямая зеленого цвета (2), которая замыкает в прямоугольник начерченные ранее линии

rem посторенние прямоугольника С

line(330,100)-(430,200),4, bf ‘ построение прямоугольника и закраска его (bf) красным цветом (4)

stop

 

В графическом режиме вся площадь экрана доступна графическим операторам, независимо от того, в каком порядке она заполняется изображениями. В нашем примере сначала рисуется в центре экрана прямоугольник А, затем справа от него (слева на экране) строиться прямоугольник В, a в заключении справа от прямоугольника А вычерчивается третий прямоугольник С. Графические операторы могут использоваться совместно с операторами, ранее изученными в текстовыми режиме, так, например, внутри цикла:

 

cls

screen 9, 0

…………………

for i=1 to 100 step 10

line(10,10)-(i+10,i+10), 7, b

next i

………………...

stop

 

В этом примере получаем семейство прямоугольников, имеющих общую левую верхнюю вершину, а нижняя, правая вершина меняет свои координаты, то есть она является функцией параметра цикла.

 

Оператор circle

 

Оператор circle предназначен для построения окружностей, овалов (эллипсов), дуг, круговых секторов.

Формат оператора

 

Circle [step](x, y)<радиус>[<цвет>][<начало>][<конец>][<аспект>]

 

Где

(x,y) атрибут, определяющий абсолютные координаты центра окружности, эллипса в графической системе координат, если не задан атрибут step; в противном случае – смещение центра, по отношению к предыдущей точке; при изображении окружности центр никаким символом не помечается;
<радиус> арифметическое выражение, идентификатор, численная константа, определяющая радиус окружности или овала (эллипса);
<цвет> значения цвета, численная константа в диапазоне от 0 до 31, если параметр отсутствует, то цвет контура определяется цветом переднего фона в операторе color;
<начало>, <конец> угловые параметры дуги, заданные в радианах, положительным направлением считается направление против часовой стрелки в диапазоне от 0 до 2*pi предварительно в программе определяется pi=3.14. если перед параметрами <начало> и <конец> ставится знак “-”, то начало и конец дуги соединяются с центром окружности радиусами, образуя круговые сектора; если параметры <начало> и <конец> пропущены, то по умолчанию изображается полная окружность;
<аспект> отношение длины отрезка, заданного по оси OX, к длине отрезка, заданного по оси OY, если параметр отсутствует, то по умолчанию он равен 1, то есть вычерчивается окружность; правильность изображения окружности зависит от разрешающей способности экрана в графическом режиме, так, при средней разрешающей способности (screen 7) отношение радиусов OX к OY равно 5/6, при высокой разрешающей способности (screen 12) это отношение равно 5/12. Если <аспект> меньше 1, то Эллис вытянут вдоль оси OY, если <аспект> больше 1, то эллипс вытянут вдоль оси OX.

 

Рассмотрим следующую задачу: требуется изобразить окружность радиусом, равным 50 пикселям с центром в точке с координатами (100,100), фрагмент программы будет выглядеть следующим образом:

rem построение окружности

cls

screen 9

circle(100,100),50,4 ‘ контур окружности красного цвета (5) появляется на фоне черного экрана, так как отсутствует оператор color цвет переднего и заднего фона определяется стандартными значениями по умолчанию

stop

 

Оператор circle также может использоваться совместно с другими операторами текстового режима, так, для получения картинки из семейства концентрических окружностей необходимо радиус окружности сделать зависящим от параметров цикла:

rem построение нескольких концентрических окружностей

cls

screen 9

for r=10 to 100 step 10

circle (200,200), r, 7

next r

stop

 

построение эллипса в операторе circle предопределяет наличие параметра <аспект> последнего в формате записи, поэтому необходимо перечислить все предшествующие параметры до него, либо записать только запятые, обозначив место параметра (если пользователя устраивают значения по умолчанию). Изобразим эллипс, вытянутый вдоль оси OX, причем отношение радиусов по осям равно 2:

 

rem построение эллипса

cls

screen 9

pi=3.141592 ‘ вводиться значение пи

circle (100,100), 50, 7, 0, 2*pi, 2 ‘ здесь центр эллипса находиться с координатами (100,100), r=50, 7 – белый цвет контура, 0 – начальное значение дуги, 2*pi – конечное значение дуги (полный оборот), 2 – значение аспекта

stop

Рассмотрим задачу вычерчивания кругового сектора с центральном углом в 60 градусов:

rem построение эллипса

cls

screen 9

pi=3.141592

circle(100,100), 50, -0, -pi/3

stop

 

Оператор графического вывода draw

 

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

draw “…XAnn…”

где

X модификатор команды (его присутствие необязательно);
A код команды, к которым относятся команды управления перемещением, поворота, выбора цвета, масштабирования, выполнения строки;
nn числовой параметр команды, который может задаваться как парой чисел, разделенных запятой, так и именем переменной.

 

Коды команды управления движением:

Un вверх на n точек;
Dn вниз на n точек;
Ln влево;
Rn вправо;
En по диагонали вверх и вправо;
Fn по диагонали вниз и вправо;
Gn по диагонали вниз и влево;
Hn по диагонали вверх и влево;
Mx , y к заданной точке.

 

Движение начинается с последней обработанной точки. Эта точка является последней графической точкой, которая была указана в других графических операторах (line, pset). При включении графического режима работы стандартным положением является центр экрана. Универсальной командой перемещения является команда Mx,y, которая задает отрезок прямой, проведенной из текущей позиции курсора в точку с координатами x, y. Значения координат x и y могут задаваться со знаком “плюс” и “минус”, в этом случае они интерпретируются как приращения координат относительно текущей позиции курсора, например оператор

draw “M40, 58”

будет чертить отрезок из текущей позиции в точку, отстоящую от нее на 40 пикселей вправо и 58 пикселей вниз.

Перед любой командой перемещения может быть определен модификатор X, принимающий значения B или N. Модификатор N предполагает возвращение курсора в первичную позицию после выполнения команды перемещения. Модификатор B указывает на то, что перемещение в заданную позицию осуществляется без отображения точек.

 


Дата добавления: 2021-11-30; просмотров: 105; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!