2.10. Линии, базирующиеся на линиях
Некоторые линии могут быть построены на базе других линий. Мы рассмотрим параметрически усеченную, эквидистантную, ссылочную и продолженную кривые. Кривую, на основе которой строится новая кривая, будем называть базовой кривой. Базовая кривая будет определена в структуре данных рассмотренных ниже кривых.
Усеченная кривая.
Параметрически усеченная кривая представляет собой некоторую часть любой другой кривой. Усечение производится путем изменения области определения параметра базовой кривой.
Пусть параметр базовой кривой t изменяется в пределах
. Усеченную кривую определим как часть базовой кривой, начинающейся при параметре
и оканчивающейся при параметре
где
. Направление усеченной кривой может совпадать с направлением базовой кривой или быть ему противоположным, например, при
. Если кривая замкнута, то движение от точки
к точке
можно выполнить двумя способами: в положительном направлении базовой кривой и в противоположном направлении. Чтобы преодолеть эту неоднозначность для замкнутых кривых, в данные усеченной кривой вводится параметр
, характеризующий совпадение ее направления с направлением базовой кривой и принимающий значения +1 или —1. Параметру базой кривой
соответствует параметр усеченной кривой
параметру базовой кривой
соответствует параметр усеченной кривой
где
— параметрическое расстояние между
и
с учетом замкнутости кривой. Если кривая не замкнута, то
Радиус-вектор усеченной кривой описывается формулой
(2.10.1)
где
— базовая кривая,
— расстояние между параметрами усечения
базовой кривой.
Эквидистантная кривая.
Эквидистантная линия описывается радиус-вектором
(2.10.2)
где
— базовая кривая,
— единичный касательный вектор к базовой кривой в данной точке, а — заданный вектор. Область изменения параметра эквидистантной кривой совпадает с областью изменения параметра базовой кривой. Эквидистантная кривая оправдывает свое название, если
— плоская кривая, а вектор а ортогонален плоскости базовой кривой.

Рис. 2.10.1. Эквидистантная кривая
В этом случае второе слагаемое в правой части (2.10.2) есть вектор, который лежит в плоскости базовой кривой, ортогонален ей и имеет длину вектора а. В результате получим кривую, каждая точка которой отстоит по нормали от соответствующей точки базовой кривой на одинаковом расстоянии (рис. 2.10.1).
Производные эквидистантной линии описываются вектором

где
— производная касательного вектора базовой кривой,
— производная длины дуги.
Ссылочная кривая. Ссылочная кривая представляет собой линию, каждая точка которой получена путем некоторого преобразования соответствующей точки базовой кривой. Ссылочная кривая описывается радиус-вектором
(2.10.3)
где
— базовая кривая,
— расширенная матрица преобразования (1.4.5) базовой кривой. Область изменения параметра ссылочной кривой совпадает с областью изменения параметра базовой кривой.
Репараметризованная кривая.
К линиям, построенным на базе линий, можно отнести кривую с измененной областью параметра. Пусть требуется, чтобы кривая
имела область определения параметра
. В этом случае можно построить репараметризованную кривую
(2.10.4)
где

которая полностью совпадает с кривой
но имеет другую область определения параметра. Линия с измененной длиной параметра применяется для согласования областей изменения параметра двух кривых, лежащих в основе кривой пересечения при построении ребер тел.
Продолженная кривая.
Произвольную линию можно не только усекать, но и продлевать требуемым образом. Любая кривая может быть продолжена (или усечена) на заданное параметрическое расстояние. Пусть требуется продолжить кривую
путем расширения области определения параметров до
. При
кривая продляется за свои пределы, при
кривая усекается. Если кривая является замкнутой, то при выходе параметра за границу области определения выполним его циклический пересчет

где
. Если же кривая не является замкнутой, а ее параметр вышел за границу области определения, то продолжим кривую по касательной, которую она имела на соответствующем конце, и вычислим по продленной кривой необходимые геометрические характеристики.
Радиус-вектор продолженной кривой вычислим по формуле
(2.10.6)
Дифференцируя формулы (2.10.5) и (2.10.6), получим производные радиус-вектора продолженной кривой. По формулам (2.10.5) или (2.10.6) может вычисляться геометрическая информация соответственно замкнутой или незамкнутой кривой при выходе ее параметра за область определения.
Общее правило.
Все кривые, в данных которых лежит другая кривая, не должны допускать многократного наследования своего же типа. Например, в качестве базовой кривой для параметрически усеченной кривой не должна быть использована другая параметрически усеченная кривая, а должна быть использована базовая кривая последней с соответствующим пересчетом параметров усечения. Аналогичные правила должны действовать и для других базирующихся кривых. Если нужно построить эквидистантную линию на базе другой эквидистантной кривой
то в качестве базовой линии должна быть использована базовая кривая последней
а вектор эквидистанты должен быть равен
. Если требуется построить ссылочную кривую на базе другой ссылочной кривой
, то в качестве базовой линии должна быть использована базовая кривая последней, а матрицу преобразования получим как произведение матриц 