docs: update math API docs
This commit is contained in:
@@ -1,69 +1,87 @@
|
||||
# Vector3
|
||||
|
||||
3D 向量结构体,用于表示 3D 空间中的点、方向、颜色或法线。
|
||||
**命名空间**: `XCEngine::Math`
|
||||
|
||||
**头文件:** `#include <XCEngine/Math/Vector3.h>`
|
||||
**类型**: `struct`
|
||||
|
||||
**命名空间:** `XCEngine::Math`
|
||||
**头文件**: `XCEngine/Math/Vector3.h`
|
||||
|
||||
## 结构体定义
|
||||
**描述**: 三维向量,用于 3D 图形和游戏开发中的位置、方向和缩放计算
|
||||
|
||||
```cpp
|
||||
struct Vector3 {
|
||||
float x = 0.0f;
|
||||
float y = 0.0f;
|
||||
float z = 0.0f;
|
||||
};
|
||||
```
|
||||
## 概述
|
||||
|
||||
## 静态工厂方法
|
||||
Vector3 是 XCEngine 中用于表示三维向量的核心类型,支持常见的向量运算。它广泛用于 3D 图形编程中的位置、方向、速度、缩放等计算场景。
|
||||
|
||||
| 方法 | 返回值 | 描述 |
|
||||
|------|--------|------|
|
||||
| [Zero()](zero.md) | `Vector3` | 返回 (0, 0, 0) |
|
||||
| [One()](one.md) | `Vector3` | 返回 (1, 1, 1) |
|
||||
| [Forward()](forward.md) | `Vector3` | 返回 (0, 0, 1),前方向(Z+) |
|
||||
| [Back()](back.md) | `Vector3` | 返回 (0, 0, -1),后方向 |
|
||||
| [Up()](up.md) | `Vector3` | 返回 (0, 1, 0),上方向 |
|
||||
| [Down()](down.md) | `Vector3` | 返回 (0, -1, 0),下方向 |
|
||||
| [Right()](right.md) | `Vector3` | 返回 (1, 0, 0),右方向 |
|
||||
| [Left()](left.md) | `Vector3` | 返回 (-1, 0, 0),左方向 |
|
||||
## 结构体成员
|
||||
|
||||
## 静态数学方法
|
||||
| 成员 | 类型 | 描述 | 默认值 |
|
||||
|------|------|------|--------|
|
||||
| `x` | `float` | X 分量 | `0.0f` |
|
||||
| `y` | `float` | Y 分量 | `0.0f` |
|
||||
| `z` | `float` | Z 分量 | `0.0f` |
|
||||
|
||||
| 方法 | 返回值 | 描述 |
|
||||
|------|--------|------|
|
||||
| [Dot(a, b)](dot.md) | `float` | 点积 |
|
||||
| [Cross(a, b)](cross.md) | `Vector3` | 叉积(垂直于 a 和 b) |
|
||||
| [Normalize(v)](normalize.md) | `Vector3` | 归一化向量 |
|
||||
| [Magnitude(v)](magnitude.md) | `float` | 向量长度 |
|
||||
| [SqrMagnitude(v)](sqrmagnitude.md) | `float` | 长度平方 |
|
||||
| [Lerp(a, b, t)](lerp.md) | `Vector3` | 线性插值 |
|
||||
| [MoveTowards(current, target, maxDistance)](movetowards.md) | `Vector3` | 朝目标移动 |
|
||||
| [Project(vector, onNormal)](project.md) | `Vector3` | 投影到法线上 |
|
||||
| [ProjectOnPlane(vector, planeNormal)](projectonplane.md) | `Vector3` | 投影到平面上 |
|
||||
| [Angle(from, to)](angle.md) | `float` | 两向量夹角(度) |
|
||||
| [Reflect(inDirection, inNormal)](reflect.md) | `Vector3` | 反射 |
|
||||
## 公共方法
|
||||
|
||||
## 实例方法
|
||||
|
||||
| 方法 | 返回值 | 描述 |
|
||||
|------|--------|------|
|
||||
| [Magnitude()](magnitude.md) | `float` | 获取向量长度 |
|
||||
| [SqrMagnitude()](sqrmagnitude.md) | `float` | 获取长度平方 |
|
||||
| [Normalized()](normalized.md) | `Vector3` | 获取归一化副本 |
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| [`Zero`](zero.md) | 返回零向量 (0, 0, 0) |
|
||||
| [`One`](one.md) | 返回单位向量 (1, 1, 1) |
|
||||
| [`Forward`](forward.md) | 返回前向向量 (0, 0, 1) |
|
||||
| [`Back`](back.md) | 返回后向向量 (0, 0, -1) |
|
||||
| [`Up`](up.md) | 返回上向量 (0, 1, 0) |
|
||||
| [`Down`](down.md) | 返回下向量 (0, -1, 0) |
|
||||
| [`Right`](right.md) | 返回右向量 (1, 0, 0) |
|
||||
| [`Left`](left.md) | 返回左向量 (-1, 0, 0) |
|
||||
| [`Dot`](dot.md) | 计算点积 |
|
||||
| [`Cross`](cross.md) | 计算叉积 |
|
||||
| [`Normalize`](normalize.md) | 返回归一化向量 |
|
||||
| [`Magnitude`](magnitude.md) | 计算向量长度 |
|
||||
| [`SqrMagnitude`](sqrmagnitude.md) | 计算向量长度的平方 |
|
||||
| [`Lerp`](lerp.md) | 线性插值 |
|
||||
| [`MoveTowards`](movetowards.md) | 移向目标点 |
|
||||
| [`Project`](project.md) | 投影到法向量上 |
|
||||
| [`ProjectOnPlane`](projectonplane.md) | 投影到平面上 |
|
||||
| [`Angle`](angle.md) | 计算两个向量之间的夹角 |
|
||||
| [`Reflect`](reflect.md) | 反射向量 |
|
||||
| [`Normalized`](normalized.md) | 返回归一化副本(实例方法) |
|
||||
|
||||
## 运算符
|
||||
|
||||
- 算术: `+`, `-`, `*` (scalar/memberwise), `/` (scalar/memberwise)
|
||||
- 复合赋值: `+=`, `-=`, `*=`, `/=`
|
||||
- 下标: `operator[]` (0=x, 1=y, 2=z)
|
||||
- 比较: `==`, `!=`
|
||||
| 运算符 | 描述 |
|
||||
|--------|------|
|
||||
| [`+`](operator_add.md), [`-`](operator_sub.md) | 向量加减 |
|
||||
| [`*`](operator_mul.md), [`/`](operator_div.md) | 向量与标量或分量相乘/相除 |
|
||||
| [`*=`](operator_mul_assign.md), [`/=`](operator_div_assign.md) | 复合赋值运算符 |
|
||||
| [`[]`](./operator_index.md) | 下标访问 x, y, z 分量 |
|
||||
| [`==`](operator_eq.md), [`!=`](operator_neq.md) | 相等性比较 |
|
||||
| [`* (Quaternion)`](quaternion-multiply.md) | 用四元数旋转向量 |
|
||||
|
||||
## 与 Quaternion 的乘法
|
||||
## 使用示例
|
||||
|
||||
[Vector3 * Quaternion](quaternion-multiply.md) - 用四元数旋转向量
|
||||
```cpp
|
||||
#include "XCEngine/Math/Vector3.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace XCEngine::Math;
|
||||
|
||||
int main() {
|
||||
Vector3 position(1.0f, 2.0f, 3.0f);
|
||||
Vector3 direction = Vector3::Forward();
|
||||
|
||||
float dot = Vector3::Dot(position, direction);
|
||||
Vector3 cross = Vector3::Cross(position, direction);
|
||||
Vector3 normalized = position.Normalized();
|
||||
|
||||
std::cout << "Position: (" << position.x << ", " << position.y << ", " << position.z << ")\n";
|
||||
std::cout << "Dot product: " << dot << "\n";
|
||||
std::cout << "Normalized: (" << normalized.x << ", " << normalized.y << ", " << normalized.z << ")\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Math 模块总览](../math.md) - 返回 Math 模块总览
|
||||
- [Math 模块总览](../math.md) - Math 模块总览
|
||||
- [Vector2](../vector2/vector2.md) - 二维向量
|
||||
- [Vector4](../vector4/vector4.md) - 四维向量
|
||||
|
||||
Reference in New Issue
Block a user