1.6. Графические элементы и геометрические фигуры

B этом разделе описаны программы для построения различных геометрических элементов и фигур. Их линейные размеры задаются в предварительно выбранных единицах измерения.  

 

1.6.1. Mногоугольники.

Программа TRIGL (X0, Y0, W, H, THETA, SLOPE)рисует треугольник с заданными основанием, высотой и уг­лом между основанием и одной из сторон (рис. 1.9, а). Параметры программы:  

X0, Y0

координаты начальной точки;

W

длина основания;

H

высота треугольника;

THETA

угол, образованный пересечением двух сторон (в градусах);

SLOPE

угол наклона основания к оси x (в градусах).

Программа BOX (X, Y, XL, YL)позволяет  начертить прямоугольник заданных размеров со сторонами, параллельными осям. Перо выво­дится в точку (X, Y) и далее чертится прямоугольник в направле­нии по часовой стрелке (рис. 1.9, б). Параметры программы:  

X, Y

координаты левого нижнего угла прямоугольника;

XL

размер стороны, параллельной оси x;

YL

размер стороны, параллельной оси y.  

 

Рис. 1.9. Многоугольники. 

Программа RECT (X, Y, W, H, TH) позволяет начертить прямоугольник заданных размеров, повернутый на заданный угол. Прямоугольник чертится из точки (X, Y) в направлении по часовой стрелке (рис. 1.9, в). Параметры программы:

X, Y

координаты левого нижнего угла прямоугольника;

W, H

длины сторон прямоугольника;

TH

угол поворота вокруг точки (X, Y) относительно оси x (в градусах).

Программа GRID (X0, Y0, XS, YS, M, N)>строит равномерную прямоу­гольную сетку со сторонами, параллельными осям координат (рис. 1.9, г). Eе параметры:  

X0, Y0

координаты левой нижней вершины прямоугольника;

XS, YS

шаги разбиения сетки по ширине и высоте; 

M

коли­чество шагов по ширине сетки;

N

количество шагов по высоте сетки.

Программа ANGRID (X0, Y0, XS, YS, M, N, SLOPE) позволяет нарисовать прямоугольную сетку c поворотом на заданный угол. Параметры программы аналогичны соответствующим параметрам программы GRID. Параметр SLOPE задает угол наклона основания сетки к оси x (рис. 1.9, г, д).

Программа POLYG (X, Y, SL, M, TH)позволяет начертить правильный многоугольник (рис. 1.9, е). Параметры программы:  

X, Y

координаты начальной точки;

SL

размер стороны многоугольника;

|M|

число сторон многоугольника: M > 0 - рисуется выпуклый многоугольник, M < 0 - рисуется звездчатый многоугольник;

TH

угол наклона к оси x стороны, с которой начинается ри­сование (в градусах).

Программа POLG (R, M, PHI) изображает выпуклый правильный мно­гоугольник с центром в текущей точке (рис. 1.9, ж). Eе парамет­ры:

|R

радиус описанной окружности или длина стороны: R > 0 - задан радиус описанной окружности, R < 0 - задана сторона много­угольника;

M

число сторон многоугольника;

PHI

угол от оси x до ближайшего луча, проведенного в вершину (в градусах).

Программа STAR (R, M, ALPHA, PHI)  рисует правильный звездчатый многоугольник с центром в текущей точке (рис. 1.9, з). Eе пара­метры:

|R

радиус описанной окружности или длина стороны: R > 0 - задан радиус описанной окружности, R < 0 - задана сторона много­угольника;  

M

число лучей в многоугольнике;

ALPHA

угол раствора луча в градусах: ALPHA = 0 - правиль­ная звезда, ALPHA > 180´(M-2)/M - правильный выпуклый M-угольник;

PHI

угол между осью x и ближайшим лучом, измеряемый против часовой стрелки.

 

1.6.2. Окружности и их дуги, спирали, сектор кругового коль­ца.

Прежде чем перейти к описанию программ построения дуг окруж­ностей, отметим общую особенность ряда программ, описываемых в данной главе. Eсли соотношение фактических параметров при об­ращении в какой-либо из программ геометрически не позволяет вы­полнять указанную операцию (например, расстояние между начальной и конечной точками дуги больше диаметра), то такое обращение мы будем называть некорректным. При некорректном обращении на печа­тающее устройство выдается диагностический текст "HE TE ПAPAMETPЫ", после чего происходит выход из данной программы без выполнения каких-либо действий. При этом, если в программе неко­торым переменным должны быть присвоены какие-то значения, то та­кого присваивания тоже не произойдет. Об этом следует помнить, если значения этих переменных используются в последующих прог­раммах. От некорректного обращения следует отличать обращение с параметрами, значения которых лежат вне допустимой области опре­деления (например, отрицательные числа для страничных коорди­нат). B последних случаях никакой диагностической печати не бу­дет, а результаты работы программ не определены.

Программа ARC (X1, Y1, X2, Y2, X3, Y3, J) позволяет провести окруж­ность или дугу окружности по трем заданным точкам. Параметры программы:

X1, Y1, X2, Y2, X3, Y3

координаты трех точек;

J

признак вычерчивания дуги: 

J = 1 - проводится дуга от первой точки к третьей через вторую, 

J = 0 - проводится полная окружность, 

J = -1 - от первой точки к третьей проводится дуга, не проходящая через вторую точку.  

Программа CIRC (R) позволяет начертить окружность заданного радиуса с центром в текущей точке. После вычерчивания окружности перо возвращается в исходную точку. Параметр программы:  

R

радиус окружности.

Программа ARCIA (R, THS, THF) проводит из текущей точки дугу окружности с заданным наклоном начального и конечного радиусов (рис.1.10а). Параметры программы:  

R

величина радиуса: R > 0 - перемещение пера из начальной точки в конечную против часовой стрелки, R < 0 - перемещение пе­ра по часовой стрелке;

THS, THF

углы наклона начального и конечного радиусов к оси x (в градусах).

Eсли |THS-THF|>360°, обращение к программе считается некор­ректным, хотя геометрически построение такой дуги возможно.

Программа ARCIB (R, XF, YF, J) соединяет текущую точку с задан­ной точкой дугой окружности заданного радиуса. Параметры прог­раммы:

|R|

величина радиуса: R > 0 - перемещение пера из началь­ной точки в конечную против часовой стрелки, R < 0 - перемещение пера по часовой стрелке;

XF, YF

координаты конечной точки;  

J

признак выбора дуги: J = 0 - короткая дуга (£180°), J=1 - длинная дуга (>180°).

Eсли расстояние между концами дуги равно диаметру окружнос­ти, то оба варианта дуг, соответствующие разным значениям J, совпадают. Eсли начальная точка совпадает с конечной, то для лю­бого знака параметра R вычерчивается полная окружность с углами наклона начального и конечного радиусов соответственно 0° и 360°. Eсли расстояние между заданными концами дуги превышает величину диаметра, то обращение к программе считается некорректным.

Программа ARCIC (XM, YM, XF, YF, J) проводит в заданную точку из текущей точки дугу окружности, проходящей через дополнительно указанную точку. Параметры программы:  

XM, YM

координаты дополнительной точки дуги;

XF, YF

координаты конечной точки дуги;

J

признак включения дополнительной точки: J = 0 - дуга проходит через дополнительную точку, J = 1 - дуга не проходит через дополнительную точку.

Дополнительная точка может находиться и вне страницы в тех случаях, когда дуга через нее не проходит. Eсли начальная точка совпадает с конечной, то вычерчивается полная окружность с диа­метром, равным расстоянию между начальной и дополнительной точ­кой. Eсли все три точки лежат на одной прямой, то обращение к программе считается некорректным. Программа ARCIC использует служебную программу ARCC1.

Программа ARCID (XC, YC, PHI) из текущей точки для заданных ко­ординат центра окружности (XC, YC) проводит дугу заданной угло­вой величины (PHI) (рис.1.10б). Значение угла задается в гра­дусах. Положительным значениям угла соответствует направление против часовой стрелки. Eсли PHI>360°, то обращение к програм­ме считается некорректным.

 

 

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

Программа FATARC (R, XF, YF, J, D) аналогична программе ARCIB, но проводит дугу утолщенной линией. Параметры R, XF, YF, J имеют тот же смысл, что и одноименные параметры программы ARCIB. Пара­метр D задает (как и в программе FATLIN) толщину линии в милли­метрах.

Программа CIRCLE (XS, YS, THS, THF, RS, RF, L) предназначается для вычерчивания окружностей, спиралей, дуг окружностей и дуг спира­лей (рис.1.10в). Параметры программы:  

XS, YS

координаты начальной точки;

THS, THF

углы наклона начального и конечного радиусов к оси x (в градусах);

RS

начальный радиус;

RF

конечный радиус;

L

признак непрерывности линии: L = 0 - штриховая линия, L = 1 - сплошная линия.

Eсли начальный и конечный радиусы равны, вычерчиваются ок­ружности и дуги окружностей. При RF<RS получаем скручивающуюся спираль, а при RF>RS - раскручивающуюся.

Программа SPIRAL (THS, THF, RS, RF) позволяет начертить спираль с началом в текущей точке (рис.1.10г). Параметры программы:

THS, THF

углы наклона начального и конечного радиусов к оси x (в градусах);

RS, RF

начальный и конечный радиусы.Eсли RF>RS, рисуется раскручивающаяся спираль, а если RF<RS, то скручивающаяся. Eсли RF=RS, то рисуется дуга ок­ружности.

Программа FAN1 (X0, Y0, R1, R2, A1, A2) позволяет начертить сектор кругового кольца ("веера") (рис.1.10д). Параметры программы:

X0, Y0

координаты центра окружностей;

R1

радиус внешней дуги;

R2

радиус внутренней дуги;

A1, A2

углы наклона сторон сектора к оси x.

Программа FAN2 (X1, Y1, X2, Y2, X3, Y3, X4, Y4) позволяет начертить сектор кругового кольца по заданным значениям координат четырех вершин (рис.1.10е). Эти вершины должны быть расположены так, чтобы P1P4=P2P3 и P4O=P3O.

Программы FAN1 и FAN2 используют служебную программу ARC1, которая проводит в указанном направлении дугу окружности по за­данным координатам центра, начальной и конечной точек.  

 

1.6.3. Эллипсы, дуги эллипсов.

Для вычерчивания эллипсов и их дуг в Графоре имеется четыре программы.

Программа ELIPS (XS, YS, A, B, ALPHA, THS, THF) позволяет начертить эллипс или дугу эллипса (рис.1.11а). Параметры программы:

XS, YS

координаты начальной точки;

A, B

размеры полуосей;

ALPHA

угол наклона полуоси A эллипса к оси x;

THS

угол между начальным диаметром и осью A;

THF

угол между конечным диаметром и осью A.

При равных осях получается окружность или ее дуга. Углы задаются в градусах.

Программа ELPS (A, B, ALPHA) позволяет начертить эллипс с за­данными размерами полуосей с центром в текущей точке и с задан­ным наклоном полуоси A к оси x (рис.1.11б). Параметры прог­раммы:  

A, B

размеры полуосей;  

ALPHA

угол наклона полуоси A эллипса к оси x.

Программа ARCELA (A, B, ALPHA, THS, THF) позволяет провести из текущей точки дугу эллипса (рис.1.11в). Параметры программы:

|A|

размер большой полуоси: A>0 - перемещение пера про­тив часовой стрелки, A<0 - перемещение пера по часовой стрел­ке;

B

размер малой полуоси;

ALPHA

угол наклона полуоси A эллипса к оси x (в градусах);

THS, THF

углы наклона начального и конечного радиуса к по­луоси A.  

Обращение к программе считается некорректным, если |THS - THF|>360°.

 

 

Рис. 1.11. Эллипсы и их дуги. 

Программа ARCELB (A, B, ALPHA, XF, YF) проводит из текущей точки в заданную точку дугу эллипса с указанными размерами полуосей и направлением рисования относительно центра (рис.1.11г). Eе параметры:  

|A|, |B|

размеры полуосей: A>0 - перемещение пера против часовой стрелки, A<0 - перемещение пера по часовой стрелке, B>0 - выбирается малая дуга (<180°), B<0 - выбирается боль­шая дуга (>180° );

ALPHA

угол наклона полуоси A эллипса к оси x;

XF, YF

координаты конечной точки дуги.

Eсли при обращении к программе ARCELB начальная точка совпа­дает с конечной, то независимо от знаков полуосей вычерчивается полный эллипс с углами наклонов (к полуоси A) начального и ко­нечного радиусов, соответственно, 0° и 360°. Eсли расстояние меж­ду конечной и начальной точками превышает величину диаметра эл­липса PQ (рис.1.11г), параллельного отрезку, соединяющему эти точки, то обращение к программе ARCELB считается некорректным.

  

1.6.4. Pазмерные линии.

Программа NARROW (XS, YS, XF, YF, S, ICODE) чертит отрезок со стрелками на концах. Параметры программы:  

XS, YS

координаты начальной точки отрезка;

XF, YF

координаты конечной точки отрезка;

S

длина стрелки;

ICODE

параметр, управляющий стрелкой: ICODE=1 - стрелка обращена к начальной точке, ICODE=2 - стрелка обращена к ко­нечной точке, ICODE = 3 - стрелки указывают на оба конца.

 

Рис. 1.12. Размерные линии. 

Программа DIMEN (XS, YS, DATA, SLOPE) позволяет изобразить раз­мерную линию заданной длины (рис.1.12а). Параметры программы:  

XS, YS

координаты начальной точки;

DATA

длина отрезка (размерное число);

SLOPE

угол наклона отрезка к оси x.

Программа DARC (XC, YC, XS, YS, A, ICODE) позволяет начертить дугу со стрелками на концах. Параметры программы:

XC, YC

координаты центра;

XS, YS

координаты начальной точки дуги;

|A|

угловая величина дуги: A>0 - дуга вычерчивается про­тив часовой стрелки, A<0 - дуга вычерчивается по часовой стрелке;

ICODE

параметр, управляющий стрелкой: ICODE=1 - стрелка обращена к начальной точке, ICODE=2 - стрелка обращена к ко­нечной точке, ICODE=3 - стрелки указывают на оба конца.

 

Программа DIMAN (XC, YC, R, A, B) рисует размерную дугу заданного радиуса. Pазмерное число надписывается с точностью до одного де­сятичного знака (рис.1.12б). Параметры программы:  

XC, YC

координаты центра;

R

радиус дуги;

A

угловая величина дуги;

B

угол между осью x и ближайшей к ней стороной угла