Curve

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

Конструктор

Curve()

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

Свойства

.arcLengthDivisions : Integer

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

Методы

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

t — Положение на кривой. Должно находиться в диапазоне [0, 1].
optionalTarget — (необязательно) Если указано, результат будет скопирован в этот Вектор, иначе будет создан новый Вектор.

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

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

u — Положение на кривой в соответствии с длиной дуги. Должно находиться в диапазоне [0, 1].
optionalTarget — (необязательно) Если указано, результат будет скопирован в этот Вектор, иначе будет создан новый Вектор.

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

.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() → null

Обновление кэша кумулятивного сегментного расстояния.

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

Учитывая u в диапазоне (0 ... 1), возвращает t также в диапазоне (0 ... 1). Затем u и t можно использовать для получения точек, равноудаленных от концов кривой, используя .getPoint.

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

t — Положение на кривой. Должно находиться в диапазоне [0, 1].
optionalTarget — (необязательно) Если указано, результат будет скопирован в этот Вектор, иначе будет создан новый Вектор.

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

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

u — Положение на кривой в соответствии с длиной дуги. Должно находиться в диапазоне [0, 1].
optionalTarget — (необязательно) Если указано, результат будет скопирован в этот Вектор, иначе будет создан новый Вектор.

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

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

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

.clone() → Curve

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

.copy(source : Curve) → Curve

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

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

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