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

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

 

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

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

XO,YO
координаты начальной точки;
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 и ближайшей к ней стороной угла.