B этом разделе описаны программы для построения различных геометрических элементов и фигур. Их линейные размеры задаются в предварительно выбранных единицах измерения.
Программа 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.
Программа 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 и ближайшим лучом, измеряемый против часовой стрелки.
Прежде чем перейти к описанию программ построения дуг окружностей, отметим общую особенность ряда программ, описываемых в данной главе. 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°, то обращение к программе считается некорректным.
Программа 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, которая проводит в указанном направлении дугу окружности по заданным координатам центра, начальной и конечной точек.
Для вычерчивания эллипсов и их дуг в Графоре имеется четыре программы.
Программа 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 °.
Программа 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 считается некорректным.
Программа NARROW(XS,YS,XF,YF,S,ICODE) чертит отрезок со стрелками на концах. Параметры программы:
- XS,YS
- координаты начальной точки отрезка;
- XF,YF
- координаты конечной точки отрезка;
- S
- длина стрелки;
- ICODE
- параметр, управляющий стрелкой:
- ICODE = 1 - стрелка обращена к начальной точке,
- ICODE = 2 - стрелка обращена к конечной точке,
- ICODE = 3 - стрелки указывают на оба конца.
Программа 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 и ближайшей к ней стороной угла.