Curve

Абстрактный базовый класс для создания объекта Curve, содержащего методы интерполяции. Массивы Curve содержатся в классе CurvePath.

Конструктор

Curve()

Этот конструктор создает новый Curve.

Свойства

.arcLengthDivisions : Integer

Это значение определяет количество делений при вычислении суммарной длины сегментов кривой через .getLengths. Для обеспечения точности при использовании таких методов, как .getSpacedPoints, рекомендуется увеличить .arcLengthDivisions, если кривая очень большая. По умолчанию это значение равно 200.

Методы

.getPoint(t : Float, optionalTarget : Vector) → Vector

Возвращает вектор для заданной позиции на кривой.

.getPointAt(u : Float, optionalTarget : Vector) → Vector

Возвращает вектор для заданной позиции на кривой в соответствии с длиной дуги.

.getPoints(divisions : Integer) → Array

divisions — количество частей, на которые нужно разделить кривую. По умолчанию 5.

Возвращает набор делений + 1 точек с помощью getPoint(t).

.getSpacedPoints(divisions : Integer) → Array

divisions — количество частей, на которые нужно разделить кривую. По умолчанию 5.

Возвращает набор делений + 1 равноотстоящих друг от друга точек с помощью getPointAt(u).

.getLength() → Float

Получает общую длину дуги кривой.

.getLengths(divisions : Integer) → Array

Получает список кумулятивных длин сегментов.

.updateArcLengths()

Обновить кэш кумулятивного сегментного расстояния. Этот метод должен вызываться каждый раз при изменении параметров кривой. Если обновляемая кривая входит в композитную кривую, например CurvePath, то .updateArcLengths() должен быть вызывать также для композитной кривой.

.getUtoTmapping(u : Float, distance : Float) → Float

Считая что u находится в диапазоне [0, 1], возвращает t также в диапазоне [0, 1]. В дальнейшем u и t можно использовать для получения точек, равноудаленных от концов кривой, с помощью метода .getPoint.

.getTangent(t : Float, optionalTarget : Vector) → Vector

Возвращает единичный вектор, касательный к t. Если производная кривой не позволяет рассчитать касательную, то для нахождения ее градиента будут использованы две точки, находящиеся на расстоянии небольшой дельты друг от друга, что, дает приближённый результат.

.getTangentAt(u : Float, optionalTarget : Vector) → Vector

Возвращает касательную в точке, равноудаленной к концам кривой от точки, указанной в .getTangent.

.computeFrenetFrames(segments : Integer, closed : Boolean) → Object

Генерирует рамки Френе. Требуется определение кривой в трехмерном пространстве. Используется в геометриях типа TubeGeometry и ExtrudeGeometry.

.clone() → Curve

Создает клон данного экземпляра.

.copy(source : Curve) → Curve

Копирует другой объект Curve в данный экземпляр.

Исходный файл

О том как получить исходный код этого модуля читайте тут.