Множественные и концевые касания

Геометрический решатель GCE поддерживает множественные касания, т.е. имеется возможность задать два и более ограничений касания для одной и той же пары кривых, в которых участвуют сплайны или параметрические кривые. На рис.1 изображены горизонтальная прямая и сплайн, для которых заданы два ограничения касания, имеющих различные точки соприкосновения:

../../../../_images/S.3.11.1.png

Рис. 1

Заметим, что в случае, когда пара касания состоит только из аналитических кривых (прямая, окружность, эллипс), возможно задать только единственное ограничение касания для одной и той же пары.

Концевое касание c непрерывностью G1 – характерный случай касания с участием сплайна, когда точка соприкосновения совпадает с одним из концов сплайна. В параметрическом черчении концевые касания позволяют создать гладкую стыковку двух кривых, c непрерывностью типа G1. На рис.2 приведены случаи гладкой стыковки сплайна с другими кривыми:

../../../../_images/S.3.11.2.png

Рис. 2

Метод GCE_AddTangent() воспринимает касание на конце незамкнутого сплайна, как особый случай, и автоматически добавляет к касанию условие принадлежности конца сплайна к другой кривой касания. Таким образом, если в общем случае, точка касания имеет свободу перемещения вдоль сплайна, то в случае концевого касания, точка касания прикрепляется к одному из концов сплайна.

Концевое касание можно создать одним из следующих способов:

  • Передать в метод GCE_AddTangent() вспомогательный параметр сплайна tPar[splineIdx], равный параметру начала или конца сплайна.

  • Вызвать метод GCE_AddTangent без вспомогательного параметра касания, т.е tPar[splineIdx]=GCE_NULL_V, но концевая точка касания сплайна должна лежать на другой кривой касания. Это можно обеспечить в момент создания сплайна или предварительно выполнить совпадение конца сплайна с другой кривой с помощью вызова GCE_AddIncidence и последующего вызова GCE_Evaluate.