docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
# Vector2
|
|
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
**命名空间**: `XCEngine::Math`
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
**类型**: `struct`
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
**头文件**: `XCEngine/Math/Vector2.h`
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
**描述**: 二维向量,支持 2D 游戏开发和图形计算
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
## 概述
|
|
|
|
|
|
|
|
|
|
Vector2 是 XCEngine 中的二维向量结构体,用于表示 2D 空间中的点、方向或颜色。提供完整的向量运算支持,包括加、减、乘、除等算术运算,以及点积、叉积、归一化、插值等数学运算。广泛应用于游戏开发中的位置表示、方向控制、碰撞检测和颜色计算等场景。
|
|
|
|
|
|
|
|
|
|
## 结构体成员
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
| 成员 | 类型 | 描述 | 默认值 |
|
|
|
|
|
|------|------|------|--------|
|
|
|
|
|
| `x` | `float` | X 分量 | `0.0f` |
|
|
|
|
|
| `y` | `float` | Y 分量 | `0.0f` |
|
|
|
|
|
|
|
|
|
|
## 公共方法
|
|
|
|
|
|
|
|
|
|
| 方法 | 描述 |
|
|
|
|
|
|------|------|
|
|
|
|
|
| [`Zero`](Zero.md) | 返回 (0, 0) 零向量 |
|
|
|
|
|
| [`One`](One.md) | 返回 (1, 1) 单位向量 |
|
|
|
|
|
| [`Up`](Up.md) | 返回 (0, 1) 上方向 |
|
|
|
|
|
| [`Down`](Down.md) | 返回 (0, -1) 下方向 |
|
|
|
|
|
| [`Right`](Right.md) | 返回 (1, 0) 右方向 |
|
|
|
|
|
| [`Left`](Left.md) | 返回 (-1, 0) 左方向 |
|
|
|
|
|
| [`Dot`](Dot.md) | 计算两个向量的点积 |
|
|
|
|
|
| [`Cross`](Cross.md) | 计算两个向量的叉积(返回标量) |
|
|
|
|
|
| [`Normalize`](Normalize.md) | 归一化向量为单位长度 |
|
|
|
|
|
| [`Magnitude`](Magnitude.md) | 计算向量长度 |
|
|
|
|
|
| [`SqrMagnitude`](SqrMagnitude.md) | 计算向量长度平方 |
|
|
|
|
|
| [`Lerp`](Lerp.md) | 线性插值 |
|
|
|
|
|
| [`MoveTowards`](MoveTowards.md) | 朝目标移动 |
|
|
|
|
|
| [`Magnitude`](Magnitude.md) | 实例方法,计算当前向量长度 |
|
|
|
|
|
| [`SqrMagnitude`](SqrMagnitude.md) | 实例方法,计算当前向量长度平方 |
|
|
|
|
|
| [`Normalized`](Normalized.md) | 实例方法,返回归一化副本 |
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
|
|
|
|
## 运算符
|
|
|
|
|
|
2026-03-20 02:35:15 +08:00
|
|
|
| 运算符 | 描述 |
|
|
|
|
|
|--------|------|
|
|
|
|
|
| `+`, `-` | 向量加减运算 |
|
|
|
|
|
| `*`, `/` | 向量与标量乘除运算 |
|
|
|
|
|
| `+=`, `-=`, `*=`, `/=` | 复合赋值运算 |
|
|
|
|
|
| `==`, `!=` | 相等性比较(基于 EPSILON 浮点比较) |
|
|
|
|
|
|
|
|
|
|
## 使用示例
|
|
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
#include "XCEngine/Math/Vector2.h"
|
|
|
|
|
|
|
|
|
|
using namespace XCEngine::Math;
|
|
|
|
|
|
|
|
|
|
Vector2 position(5.0f, 3.0f);
|
|
|
|
|
Vector2 velocity(1.0f, 0.5f);
|
|
|
|
|
|
|
|
|
|
float speed = velocity.Magnitude();
|
|
|
|
|
Vector2 normalizedVel = velocity.Normalized();
|
|
|
|
|
|
|
|
|
|
Vector2 newPos = position + velocity * speed;
|
|
|
|
|
|
|
|
|
|
float dotProduct = Vector2::Dot(position, normalizedVel);
|
|
|
|
|
|
|
|
|
|
Vector2 interpolated = Vector2::Lerp(position, Vector2(10.0f, 10.0f), 0.5f);
|
|
|
|
|
```
|
docs: 重构 API 文档结构并修正源码准确性
- 重组文档目录结构: 每个模块的概述页移动到模块子目录
- 重命名 index.md 为 main.md
- 修正所有模块文档中的错误:
- math: FromEuler→FromEulerAngles, TransformDirection 包含缩放, Box 是 OBB, Color::ToRGBA 格式
- containers: 新增 operator==/!= 文档, 补充 std::hash DJB 算法细节
- core: 修复 types 链接错误
- debug: LogLevelToString 返回大写, timestamp 是秒, Profiler 空实现标注, Windows API vs ANSI
- memory: 修复头文件路径, malloc vs operator new, 新增方法文档
- resources: 修复 Shader/Texture 链接错误
- threading: TaskSystem::Wait 空实现标注, ReadWriteLock 重入描述, LambdaTask 链接
- 验证: fix_links.py 确认 0 个断裂引用
2026-03-19 00:22:30 +08:00
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
|
|
|
|
- [Math 模块总览](../math.md) - 返回 Math 模块总览
|