Графические примитивы#
К графическим примитивам относятся:
Примечание
Двухмерные примитивы в основном используются в условно-графическом отображении оборудования.
Примечание
Трёхмерные кривые в основном используются как направляющие для построения сложных 3D-тел
Кривые в двумерном пространстве (класс Curve2D)#
Общий класс Curve2D, порождающий кривые. Не имеет конструктора, но включает в себя функции, создающие различные виды кривых (см. Порождающие функции).
Кривые могут быть:
Односегментные (линии, дуги)
Составные (контуры)
Порождающие функции#
Линия по двум точкам#
Отрезок прямой, построенной по двум точкам. Относится к односегментным кривым.
Дуга окружности по трём точкам#
Дуга, построенная по начальной точке, конечной и лежащей на дуге точке. Относится к односегментным кривым.
Дуга окружности по центру, начальной точке и конечной точке#
Дуга, построенная по центру окружности, начальной и конечной точке. Относится к односегментным кривым.
- CreateArc2DByCenterStartEndPoints(centerPoint, startPoint, endPoint, clockwise)#
Параметрическая кривая в двумерном пространстве#
Односегментная кривая, описываемая с помощью параметрических функций xFunction
и yFunction
. Тип системы координат (CoreEnum) указывается в параметре coordinateSystem
. Для определения области параметра кривой используются начальное значение tStart
и конечное значение tEnd
.
Примечание
Составление символьных выражений см. официальное руководство Renga STDL
- CreateParametricCurve2D(xFunction, yFunction, coordinateSystem, tStart, tEnd)#
- Parameters:
xFunction (
Символьное выражение
) – Выражение, описывающее зависимость X-координаты от параметра.yFunction (
Символьное выражение
) – Выражение, описывающее зависимость Y-координаты от параметра.coordinateSystem (CoordinateSystem2D) – Задает тип системы координат в двухмерном пространстве.
tStart (
Number
) – Задает начальное значение параметра.tEnd (
Number
) – Задает конечное значение параметра.
Окружность#
Замкнутая кривая, все точки которой равноудалены от заданной точки. Относится к односегментным кривым.
Полилиния#
Контур, состоящий из сегментов-линий. Может быть замкнутым или открытым.
Эллипс#
Замкнутая кривая. Относится к односегментным кривым.
- CreateEllipse2D(centerPoint, angle, halfRadiusX, halfRadiusY)#
- Parameters:
centerPoint (Point2D) – Задает центр эллипса.
angle (
Number
) – Задает угол поворота против часовой стрелки относительно центра в радианах.halfRadiusX (
Number
) – Задает радиус полуоси вдоль оси X.halfRadiusY (
Number
) – Задает радиус полуоси вдоль оси Y.
Дуга эллипса по центру, начальной точке и конечной точке#
Односегментная кривая.
- CreateEllipticalArc2DByCenterStartEndPoints(centerPoint, angle, halfRadiusX, halfRadiusY, startPoint, endPoint, clockwise)#
- Parameters:
centerPoint (Point2D) – Задает центр эллипса.
angle (Point2D) – Задает угол начала вращения против часовой стрелки относительно центра в радианах.
halfRadiusX (
Number
) – Задает радиус полуоси вдоль оси X.halfRadiusY (
Number
) – Задает радиус полуоси вдоль оси Y.startPoint (Point2D) – Задает точку начала дуги.
endPoint (Point2D) – Задает точку конца дуги.
clockwise (
Boolean
) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.
Прямоугольник с центром в начале координат#
Четырёхугольник, у которого все углы прямые. Относится к составным замкнутым кривым.
- CreateRectangle2D(centerPoint, angle, width, height)#
- Parameters:
centerPoint (Point2D) – Задает центр прямоугольника.
angle (
Number
) – Задает угол поворота против часовой стрелки относительно центра в радианах.width (
Number
) – Задает ширину прямоугольника.height (
Number
) – Задает высоту прямоугольника.
Составная кривая#
Начало каждой кривой должно совпадать с концом предыдущей.
Методы класса#
Общие методы двухмерных кривых Curve2D
Сместить по осям X, Y
- :Shift(dX, dY)
- Parameters:
dX (
Number
) – Задает смещение по оси X.dY (
Number
) – Задает смещение по оси Y.
Повернуть на угол вокруг точки
- :Rotate(point, angle)
- Parameters:
point (Point2D) – Задает точку вращения.
angle (
Number
) – Задает угол поворота в радианах.
Масштабировать по двум осям относительно указанной точки
- :Scale(point, scaleX, scaleY)
- Parameters:
point (Point2D) – Задает точку, относительно которой будет масштабироваться кривая.
scaleX (
Number
) – Задает коэффициент масштабирования по оси X.scaleY (
Number
) – Задает коэффициент масштабирования по оси Y.
Преобразовать согласно матрице
- :Transform(matrix)
- Parameters:
matrix (Matrix2D) – Задает матрицу преобразования в двумерном пространстве.
Изменить направление кривой на противоположное
- :Invert()
- Returns:
Инвертированная двумерная кривая
- Return type:
Вернуть копию кривой
- :Clone()
- Returns:
Копия двумерной кривой
- Return type:
Обрезать кривую по двум точкам
- :Trim(startPoint, endPoint)
Вернуть начальную точку кривой
- :GetStartPoint()
- Returns:
Двухмерная точка
- Return type:
Вернуть конечную точку кривой
- :GetEndPoint()
- Returns:
Двухмерная точка
- Return type:
Вернуть ближайшую точку до соседней кривой
- :GetClosestPointTo(otherCurve)
- Parameters:
otherCurve (Curve2D) – Задает другую двумерную кривую.
Вернуть габаритный прямоугольник кривой
- :GetBounds()
- Returns:
Габаритный прямоугольник
- Return type:
Операторы#
Проверить равенство с другой кривой
- ==
- Результат:
Логическое значение
- Тип результата:
Boolean
Проверить неравенство с другой кривой
- ~=
- Результат:
Логическое значение
- Тип результата:
Boolean
Функции, не члены класса#
Скруглить углы составной кривой
- FilletCorners2D(curve, radius)#
- Parameters:
curve (Curve2D) – Задает двумерную кривую.
radius (
Number
) – Задает радиус скругления.
Скруглить два соседних сегмента кривой
- FilletCornerAfterSegment2D(curve, segmentIndex, radius)#
- Parameters:
curve (Curve2D) – Задает двумерную кривую.
segmentIndex (
Number
) – Задает индекс (порядковый номер) сегмента кривой.radius (
Number
) – Задает радиус скругления.
Вернуть список точек пересения кривых Curve1 и Curve2.
- IntersectCurves2D(first, second, includeTouch)#
Обрезать кривые по контурам
- ClipCurvesByRegions({clippedCurves}, {clipperRegions}, invertRegions, cutOnCurve)#
- Parameters:
{clippedCurves} (table of Curves2D) – Задает таблицу двумерных кривых, которые необходимо обрезать.
{clipperRegions} (table of FillAreas) – Задает таблицу двумерных контуров, по которым обрезать.
invertRegions (
boolean
) – Инвертировать контуры.cutOnCurve (
boolean
) – Если False, не удаляются части кривой, совпадающие с участками границы.
- Returns:
Односегментные кривые
- Return type:
table of Curves2D
Область заливки (класс FillArea)#
Область заливки состоит из набора замкнутых составных контуров. Область заливки — это связное множество точек двумерного пространства, границы которого описывают контуры. Контуры региона замкнуты и не имеют самопересечений (но могут иметь самокасания). В произвольном регионе обязан быть один (и только один) внешний контур outerBoundary
(положительный обход внешнего контура осуществляется против часовой стрелки) и несколько внутренних контуров innerBoundaries
(положительный обход внутреннего контура осуществляется по часовой стрелке), которые полностью лежат внутри внешнего контура (или могут его касаться).
Конструктор класса:
- FillArea(outerBoundary, {innerBoundaries})#
Методы класса#
Сместить по осям X, Y
- :Shift(dX, dY)
- Parameters:
dX (
Number
) – Задает смещение по оси X.dY (
Number
) – Задает смещение по оси Y.
Повернуть относительно точки
- :Rotate(point, angle)
- Parameters:
point (Point2D) – Задает точку-центр вращения.
angle (
Number
) – Задает угол поворота в радианах.
Масштабировать по двум осям относительно указанной точки
- :Scale(point, scaleX, scaleY)
- Parameters:
point (Point2D) – Задает точку, относительно которой будет масштабироваться кривая.
scaleX (
Number
) – Задает коэффициент масштабирования по оси X.scaleY (
Number
) – Задает коэффициент масштабирования по оси Y.
Преобразовать согласно матрице
- :Transform(matrix)
- Parameters:
matrix (Matrix2D) – Задает матрицу преобразования в двумерном пространстве.
Вернуть копию объекта
- :Clone()
- Returns:
Копия контура
- Return type:
Вернуть внутренние границы
- :GetInnerBoundaries()
- Returns:
Таблица составных контуров.
- Return type:
table of Curves2D
Вернуть внешнюю границу
- :GetOuterBoundary()
- Returns:
Составной контур.
- Return type:
Операторы#
Проверить равенство с другим контуром
- ==
- Результат:
Логическое значение
- Тип результата:
Boolean
Проверить неравенство с другим контуром
- ~=
- Результат:
Логическое значение
- Тип результата:
Boolean
Кривые в трехмерном пространстве (класс Curve3D)#
Общий класс Curve3D, порождающий трёхмерные кривые. Не имеет конструктора, но включает в себя функции, создающие различные виды кривых.
Порождающие функции#
Линия по двум точкам#
Дуга окружности по центру, начальной и конечной точкам#
Дуга окружности по центру, начальной точке и конечной точке#
Дуга, построенная по центру окружности, начальной и конечной точке в трёхмерном пространстве. Относится к односегментным кривым.
- CreateArc3DByCenterStartEndPoints(centerPoint, startPoint, endPoint, clockwise)#
Окружность в трёхмерном пространстве#
Эллипс в трёхмерном пространстве#
- CreateEllipse3D(centerPoint, normal, majorVector, majorRadius, minorRadius)#
- Parameters:
centerPoint (Point3D) – Задает центр эллипса.
normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.
majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением
normal * majorVector
.majorRadius (
Number
) – Задает радиус первой полуоси.minorRadius (
Number
) – Задает радиус второй полуоси.
Дуга эллипса по центру, начальной точке и конечной точке#
Односегментная кривая в трёхмерном пространстве.
- CreateEllipticalArc3D(centerPoint, normal, majorVector, majorRadius, minorRadius, startPoint, endPoint, clockwise)#
- Parameters:
centerPoint (Point3D) – Задает центр эллипса.
normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.
majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением
normal * majorVector
.majorRadius (
Number
) – Задает радиус первой полуоси.minorRadius (
Number
) – Задает радиус второй полуоси.startPoint (Point3D) – Задает точку начала дуги.
endPoint (Point3D) – Задает точку конца дуги.
clockwise (
Boolean
) – Задает направление дуги. True - по часовой стрелке, False - против часовой стрелки.
Трёхмерная составная кривая#
Начало каждой кривой должно совпадать с концом предыдущей.
Полилиния в трёхмерном пространстве#
Контур, состоящий из сегментов-линий. Может быть замкнутым или открытым.
Параметрическая кривая в трёхмерном пространстве#
Односегментная кривая, описываемая с помощью параметрических функций xFunction
и yFunction
. Тип системы координат (CoreEnum) указывается в параметре coordinateSystem
. Для определения области параметра кривой используются начальное значение tStart
и конечное значение tEnd
.
Примечание
Составление символьных выражений см. официальное руководство Renga STDL
- CreateParametricCurve3D(xFunction, yFunction, yFunction, coordinateSystem, tStart, tEnd, placement)#
- Parameters:
xFunction (
Символьное выражение
) – Выражение, описывающее зависимость X-координаты от параметра.yFunction (
Символьное выражение
) – Выражение, описывающее зависимость Y-координаты от параметра.zFunction (
Символьное выражение
) – Выражение, описывающее зависимость Z-координаты от параметра.coordinateSystem (CoordinateSystem3D) – Задает тип системы координат в трёхмерном пространстве.
tStart (
Number
) – Задает начальное значение параметра.tEnd (
Number
) – Задает конечное значение параметра.placement (Placement3D) – (optional) Задает координатную плоскость. Если система координат не задана, то для построения используется глобальная система координат.
Прямоугольник с центром в начале координат#
Четырёхугольник, у которого все углы прямые, в трёхмерном пространстве. Относится к составным замкнутым кривым.
- CreateRectangle3D(centerPoint, normal, widthVector, width, height)#
- Parameters:
centerPoint (Point3D) – Задает центр прямоугольника.
normal (Vector3D) – Задает вектор, ортогональный плоскости фигуры.
majorVector (Vector3D) – Задает вектор, сонаправленный с первой полуосью. Вторая полуось сонаправлена с векторным произведением
normal * majorVector
.width (
Number
) – Задает ширину прямоугольника.height (
Number
) – Задает высоту прямоугольника.
Методы класса#
Общие методы трёхмерных кривых Curve3D
Сместить по осям X, Y, Z
- :Shift(dX, dY, dZ)
- Parameters:
dX (
Number
) – Задает смещение по оси X.dY (
Number
) – Задает смещение по оси Y.dZ (
Number
) – Задает смещение по оси Z.
Повернуть относительно оси
- :Rotate(axis, angle)
- Parameters:
axis (Axis3D) – Задает ось вращения.
angle (
Number
) – Задает угол поворота в радианах.
Преобразовать согласно матрице
- :Transform(matrix)
- Parameters:
matrix (Matrix3D) – Задает матрицу преобразования в трёхмерном пространстве.
Изменить направление кривой на противоположное
- :Invert()
- Returns:
Инвертированная трёхмерная кривая
- Return type:
Вернуть копию кривой
- :Clone()
- Returns:
Копия трёхмерной кривой
- Return type:
Обрезать трёхмерную кривую по двум точкам
- :Trim(startPoint, endPoint)
Вернуть начальную точку кривой
- :GetStartPoint()
- Returns:
Трёхмерная точка.
- Return type:
Вернуть конечную точку кривой
- :GetEndPoint()
- Returns:
Трёхмерная точка.
- Return type:
Операторы#
Проверить равенство с другим трёхмерным контуром
- ==
- Результат:
Логическое значение
- Тип результата:
Boolean
Проверить неравенство с другим трёхмерным контуром
- ~=
- Результат:
Логическое значение
- Тип результата:
Boolean
Функции, не члены класса#
Скруглить углы составной трёхмерной кривой
- FilletCorners3D(curve, radius)#
- Parameters:
curve (Curve3D) – Задает трёхмерную кривую.
radius (
Number
) – Задает радиус скругления.
Скруглить два соседних сегмента трёхмерной кривой