CurveCurvePath

Path

Двумерное представление пути. Класс предоставляет методы для создания путей и контуров двумерных фигур, аналогичные API 2D Canvas.

Пример

const path = new v3d.Path(); path.lineTo(0, 0.8); path.quadraticCurveTo(0, 1, 0.2, 1); path.lineTo(1, 1); const points = path.getPoints(); const geometry = new v3d.BufferGeometry().setFromPoints(points); const material = new v3d.LineBasicMaterial({ color: 0xffffff }); const line = new v3d.Line(geometry, material); app.scene.add(line);

Конструктор

Path(points : Array)

points — (необязательный) массив Vector2s.

Создает контур из точек. Первая точка определяет смещение, затем последующие точки добавляются в массив curves как LineCurves.

Если точки не указаны, создается пустой контур, а .currentPoint устанавливается в начало координат.

Свойства

Общие свойства смотрите в базовом классе CurvePath.

.currentPoint : Array

Текущее смещение контура. Любая новая добавленная Curve будет начинаться здесь.

Методы

Общие методы смотрите в базовом классе CurvePath.

.absarc(x : Float, y : Float, radius : Float, startAngle : Float, endAngle : Float, clockwise : Boolean) → this

x, y — Абсолютный центр дуги.
radius — Радиус дуги.
startAngle — Начальный угол в радианах.
endAngle — Конечный угол в радианах.
clockwise — Развернуть дугу по часовой стрелке. По умолчанию false.

Добавляет абсолютно позиционированную EllipseCurve к пути.

.absellipse(x : Float, y : Float, xRadius : Float, yRadius : Float, startAngle : Float, endAngle : Float, clockwise : Boolean, rotation : Float) → this

x, y — Абсолютный центр эллипса.
xRadius — Радиус эллипса по оси x.
yRadius — Радиус эллипса по оси y.
startAngle — Начальный угол в радианах.
endAngle — Конечный угол в радианах.
clockwise — Развернуть эллипс по часовой стрелке. По умолчанию имеет значение false.
rotation — Угол поворота эллипса в радианах, против часовой стрелки от положительной оси X. Необязателен, по умолчанию равен 0.

Добавляет абсолютно позиционированную EllipseCurve к пути.

.arc(x : Float, y : Float, radius : Float, startAngle : Float, endAngle : Float, clockwise : Boolean) → this

x, y — Центр дуги, смещенный относительно последнего вызова.
radius — Радиус дуги.
startAngle — Начальный угол в радианах.
endAngle — Конечный угол в радианах.
clockwise — Развернуть дугу по часовой стрелке. По умолчанию false.

Добавляет EllipseCurve в контур, позиционированный относительно .currentPoint.

.bezierCurveTo(cp1X : Float, cp1Y : Float, cp2X : Float, cp2Y : Float, x : Float, y : Float) → this

Это создает кривую безье из .currentPoint с (cp1X, cp1Y) и (cp2X, cp2Y) в качестве контрольных точек и обновляет .currentPoint до x и y.

.ellipse(x : Float, y : Float, xRadius : Float, yRadius : Float, startAngle : Float, endAngle : Float, clockwise : Boolean, rotation : Float) → this

x, y — Центр эллипса, смещенный относительно последнего вызова.
xRadius — Радиус эллипса по оси x.
yRadius — Радиус эллипса по оси y.
startAngle — Начальный угол в радианах.
endAngle — Конечный угол в радианах.
clockwise — Развернуть эллипс по часовой стрелке. По умолчанию false.
rotation — Угол поворота эллипса в радианах, против часовой стрелки от положительной оси X. Необязательно, по умолчанию 0.

Добавляет EllipseCurve в контур, позиционированный относительно .currentPoint.

.lineTo(x : Float, y : Float) → this

Соединяет LineCurve из .currentPoint с x, y на пути.

.moveTo(x : Float, y : Float) → this

Переместите .currentPoint к x, y.

.quadraticCurveTo(cpX : Float, cpY : Float, x : Float, y : Float) → this

Создает квадратичную кривую из .currentPoint с cpX и cpY в качестве контрольных точек и обновляет .currentPoint до x и y.

.setFromPoints(vector2s : Array) → this

points — массивVector2s.

Точки добавляются в массив curves как LineCurve.

.splineThru(points : Array) → this

points - массив Vector2s

Подключает новую SplineCurve к пути.

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

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