Контрольные точки геометрических объектов

Среди геометрических типов, поддерживаемых решателем (см. параграф Типы поддерживаемой геометрии) особенное место занимает точка. Во-первых, точка самый элементарный геометрический объект. Во-вторых, через точки, называемые контрольными, выражаются все остальные типы геометрии. Например, окружность выражается структурой <C,R>, где С – точка центра, R – скаляр, числовое значение радиуса. В-третьих, контрольные точки могут самостоятельно участвовать в ограничениях, в качестве их аргументов. Например, можно задавать ограничения, как для самой окружности, так и отдельно для её точки, скажем, расстояние от центра окружности до прямой, см. рис. 1.

../../../../_images/S.1.11.1.png

Рис. 1

С – контрольная точка центра

T – касание окружности и прямой

D – расстояние от центра до прямой

Чтобы работать с контрольной точкой, как с самостоятельной точкой, необходимо запросить её дескриптор у геометрического объекта с помощью функции:

geom_item GCE_PointOf(GCE_system gSys, geom_item g, point_type pnt).    

Результатом функции является дескриптор контрольной точки геометрического объекта g, принадлежащего системе ограничений gSys. Параметр pnt определяет какая контрольная точка объекта запрашивается и принимает одно из следующих значений:

  • GCE_FIRST_END – начальная точка кривой (первый конец);

  • GCE_SECOND_END – конечная точка кривой (второй конец);

  • GCE_CENTRE – центр окружности, эллипса, а также их дуги (bounded curve);

  • GCE_Q1 – квадрантная точка эллипса (3 часа);

  • GCE_Q2 – квадрантная точка эллипса (12 часов);

  • GCE_Q3 – квадрантная точка эллипса (6 часов);

  • GCE_Q4 – квадрантная точка эллипса (9 часов).

Запросить контрольные точки сплайновой кривой позволяет метод

geom_item GCE_SplinePoint(GCE_system gSys, geom_item spl, size_t pntIdx).   

Функция вернет дескриптор контрольной точки сплайна spl, взятой по номеру pntIdx, принимающий значения от 0 до N-1, где N – число контрольных точек сплайна. На рис. 2 изображен сплайн, имеющий N = 7 контрольных точек (красные кружки), с нумерацией от 0.

../../../../_images/S.1.11.2.png

Рис. 2