Plane - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать Plane в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# Plane

Двумерная поверхность, бесконечно простирающаяся в трехмерном пространстве, представленная вектором нормали единичной длины и константой.

## Конструктор

### Plane(normal : Vector3, constant : Float)

- normal — (необ.) единичный вектор, определяющий нормаль плоскости. По умолчанию `(1, 0, 0)`.
- constant — (необ.) расстояние от начала координат до плоскости. По умолчанию `0`.

## Свойства

### # .isPlane : Boolean

Флаг, указывающий, что данный объект является экземпляром Plane. Только для чтения.

### # .normal : Vector3

### # .constant : Float

## Методы

### # .applyMatrix4(matrix : Matrix4, optionalNormalMatrix : Matrix3) → Plane

- matrix — применяемая матрица.
- optionalNormalMatrix — (необ.) предварительно вычисленная матрица нормали Matrix3 от применяемой Matrix4.

Применяет матрицу к плоскости. Матрица должна представлять собой аффинное, однородное преобразование. Если указана optionalNormalMatrix, она может быть создана следующим образом:

`const optionalNormalMatrix = new v3d.Matrix3().getNormalMatrix(matrix);`

### # .clone() → Plane

Возвращает новую плоскость с теми же normal и constant, что и текущая.

### # .coplanarPoint(target : Vector3) → Vector3

target — результат будет скопирован в этот Vector3.

Возвращает Vector3, компланарный плоскости, путем вычисления проекции вектора нормали в начале координат на плоскость.

### # .copy(plane : Plane) → Plane

Копирует значения свойств normal и constant переданной плоскости в эту плоскость.

### # .distanceToPoint(point : Vector3) → Float

Возвращает знаковое расстояние от точки Vector3 до плоскости.

### # .distanceToSphere(sphere : Sphere) → Float

Возвращает знаковое расстояние от сферы до плоскости.

### # .equals(plane : Plane) → Boolean

Проверяет, равны ли две плоскости (их свойства normal и constant совпадают).

### # .intersectLine(line : Line3, target : Vector3) → Vector3

- line — Line3 для проверки пересечения.
- target — результат будет скопирован в этот Vector3.

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

### # .intersectsBox(box : Box3) → Boolean

box — Box3 для проверки пересечения.

Определяет, пересекает ли текущая плоскость указанный кубоид.

### # .intersectsLine(line : Line3) → Boolean

line — Line3 для проверки пересечения.

Проверяет, пересекается ли отрезок прямой с плоскостью (проходит через нее).

### # .intersectsSphere(sphere : Sphere) → Boolean

sphere — Sphere для проверки пересечения.

Определяет, пересекает ли текущая плоскость сферу.

### # .negate() → Plane

Инвертирует как нормальный вектор, так и константу.

### # .normalize() → Plane

Нормализует вектор normal и соответствующим образом корректирует значение constant.

### # .projectPoint(point : Vector3, target : Vector3) → Vector3

- point — Vector3 для проецирования на плоскость.
- target — результат будет скопирован в этот Vector3.

Проецирует точку на плоскость.

### # .set(normal : Vector3, constant : Float) → Plane

- normal — единичный вектор, определяющий нормаль к плоскости.
- constant — знаковое расстояние от начала координат до плоскости. По умолчанию `0`.

Устанавливает свойства normal и constant этой плоскости, копируя значения из заданной нормали.

### # .setComponents(x : Float, y : Float, z : Float, w : Float) → Plane

- x — x-значение нормального вектора единичной длины.
- y — y-значение нормального вектора единичной длины.
- z — z-значение нормального вектора единичной длины.
- w — значение свойства constant плоскости.

Установите отдельные компоненты, определяющие плоскость.

### # .setFromCoplanarPoints(a : Vector3, b : Vector3, c : Vector3) → Plane

- a — первая точка на плоскости.
- b — вторая точка на плоскости.
- c — третья точка на плоскости.

Определяет плоскость на основе 3 заданных точек. Для корректного определения нормали, предполагается порядок следования точек против часовой стрелки.

### # .setFromNormalAndCoplanarPoint(normal : Vector3, point : Vector3) → Plane this : Vector3

- normal — единичный вектор, определяющий нормаль к плоскости.
- point — Vector3.

Задает свойства плоскости, определяемые указанными нормалью и произвольной компланарной точкой.

### # .translate(offset : Vector3) → Plane

offset — величина, на которую нужно переместить плоскость.

Перемещает плоскость на расстояние, определяемое вектором offset. Обратите внимание, что данное преобразование влияет только на константу плоскости и не влияет на вектор нормали.

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

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