У меня есть реализация кривых NURBS в 3D, кривые по умолчанию имеют вектор зажимающего узла (начальная и конечная точки кривой находятся в той же позиции, что и соответствующие контрольные точки). То, что я хочу сделать, это установить направление, в котором должна начинаться кривая (определяется вектором). Возможно ли это, или мне нужно определить дополнительные контрольные точки, чтобы получить желаемое поведение?
Для кривой Нюрба с вектором зажимного узла начальная точка кривой определяется первой контрольной точкой, а начальное направление касательной кривой определяется вектором между первой контрольной точкой и 2-й контрольной точкой. Итак, все, что вам нужно сделать, это определить первую контрольную точку P0 как точку начала кривой, а 2-ую контрольную точку P1 как P1 = P0 + c * T (где T — единица, начинающая касательный вектор кривой и с — любое постоянное значение). Точно так же вы можете сделать то же самое для последней и второй до последней контрольной точки, чтобы удовлетворить ваши требования к положению и касательной в конце кривой.
Других решений пока нет …