> For the complete documentation index, see [llms.txt](https://lifeexe-art.gitbook.io/lifeexe/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lifeexe-art.gitbook.io/lifeexe/computer-graphics/sistemy-koordinat-v-3d-grafike.md).

# Системы координат в 3D-графике

В 3D-графике и математике **ориентация системы координат** определяет, как оси X, Y и Z располагаются относительно друг друга. Это влияет на результаты векторных произведений и направление вращений. Существуют две основные системы:

* **Правая тройка векторов (Right-Handed System)**
* **Левая тройка векторов (Left-Handed System)**

## **Правая система координат (Right-Handed System / Правая тройка)**

<figure><img src="/files/prp7rm8bKvGyHYHw16WD" alt=""><figcaption></figcaption></figure>

Представьте свою правую руку:

1. Большой палец указывает вдоль положительного направления оси **X**.
2. Указательный палец — вдоль положительного направления оси **Y**.
3. Средний палец, согнутый перпендикулярно первым двум, укажет положительное направление оси **Z**.

В этой системе, если смотреть против направления оси Z, положительное вращение вокруг оси Z происходит **против часовой стрелки**. Это стандарт для многих математических описаний, а также для OpenGL и Blender.

## **Левая система координат (Left-Handed System / Левая тройка)**

<figure><img src="/files/S6W21oAuw8POBu25rd7p" alt=""><figcaption></figcaption></figure>

Представьте свою левую руку:

1. Большой палец указывает вдоль положительного направления оси **X**.
2. Указательный палец — вдоль положительного направления оси **Y**.
3. Средний палец, согнутый перпендикулярно первым двум, укажет положительное направление оси **Z**.

В этой системе, если смотреть против направления оси Z, положительное вращение вокруг оси Z происходит **по часовой стрелке**. Эта система используется, например, в DirectX и Unreal Engine.

## 📖 Словарь терминов

### **Система координат (Coordinate System)**

Набор из точки отсчета (начала координат) и базисных векторов (осей), определяющих положение точек в пространстве.

### **Правосторонняя система координат (Right-Handed Coordinate System / RHS)**

Система, где оси X, Y, Z ориентированы по правилу правой руки.

### **Левосторонняя система координат (Left-Handed Coordinate System / LHS)**

Система, где оси X, Y, Z ориентированы по правилу левой руки.

### **Оси координат (Coordinate Axes)**

Направляющие линии (X, Y, Z), используемые для определения положения в пространстве.

### **Начало координат (Origin)**

Точка пересечения осей координат (0,0,0).

### **Правило правой руки (Right-Hand Rule)**

Мнемоническое правило для определения ориентации осей в правой системе координат или направления векторного произведения.

### **Правило левой руки (Left-Hand Rule)**

Мнемоническое правило для определения ориентации осей в левой системе координат.

### **Хиральность (Chirality) / Ориентация (Handedness)**

Свойство системы координат быть правой или левой. Системы с разной хиральностью являются зеркальными отражениями друг друга.

### **Векторное произведение (Cross Product)**

Операция над двумя векторами в трехмерном пространстве, результатом которой является вектор, перпендикулярный обоим исходным векторам. Направление результирующего вектора зависит от "handedness" системы координат:

* В RHS: a×b направлен по правилу правой руки (от a к b).
* В LHS: a×b направлен по правилу левой руки (от a к b), или, что то же самое, направление будет противоположным тому, что получилось бы в RHS для тех же векторов.

### **Направление вращения (Rotation Direction)**

* **Положительное вращение (Positive Rotation):** В RHS обычно определяется как вращение против часовой стрелки, если смотреть против направления оси вращения. В LHS — по часовой стрелке.
* **Отрицательное вращение (Negative Rotation):** Вращение в противоположную сторону от положительного.
* **По часовой стрелке (Clockwise / CW)**
* **Против часовой стрелки (Counter-Clockwise / CCW)**

### **Пространства в 3D графике (Spaces in 3D Graphics)**

* **Мировое пространство (World Space):** Общая система координат для всех объектов в сцене. Может быть как RHS, так и LHS в зависимости от движка/API.
* **Локальное пространство / Пространство объекта (Local Space / Object Space):** Система координат относительно самого объекта.
* **Пространство вида / Пространство камеры (View Space / Camera Space):** Система координат относительно камеры. Часто именно здесь может происходить переход между RHS и LHS (например, камера в OpenGL (RHS) смотрит вдоль отрицательной оси Z, а в DirectX (LHS) – вдоль положительной Z).

### **Z-fighting**

Артефакт рендеринга, когда две или более поверхности находятся очень близко друг к другу вдоль оси Z, и из-за ограничений точности буфера глубины (Z-buffer) они "борются" за то, какая из них будет отображена. Направление оси Z (вперед или назад от наблюдателя) определяется хиральностью системы.
