1.6 KiB
1.6 KiB
Vector2
2D 向量结构体,用于表示 2D 空间中的点、方向或颜色。
头文件
#include <XCEngine/Math/Vector2.h>
命名空间
XCEngine::Math
结构体定义
struct Vector2 {
float x = 0.0f;
float y = 0.0f;
};
静态工厂方法
| 方法 | 返回值 | 描述 |
|---|---|---|
Zero() |
Vector2 |
返回 (0, 0) |
One() |
Vector2 |
返回 (1, 1) |
Up() |
Vector2 |
返回 (0, 1),上方向 |
Down() |
Vector2 |
返回 (0, -1),下方向 |
Right() |
Vector2 |
返回 (1, 0),右方向 |
Left() |
Vector2 |
返回 (-1, 0),左方向 |
静态数学方法
| 方法 | 返回值 | 描述 |
|---|---|---|
Dot(a, b) |
float |
点积 |
Cross(a, b) |
float |
2D 叉积(返回标量) |
Normalize(v) |
Vector2 |
归一化向量 |
Magnitude(v) |
float |
向量长度 |
SqrMagnitude(v) |
float |
长度平方(更快) |
Lerp(a, b, t) |
Vector2 |
线性插值 |
MoveTowards(current, target, maxDistance) |
Vector2 |
朝目标移动 |
实例方法
| 方法 | 返回值 | 描述 |
|---|---|---|
Magnitude() |
float |
获取向量长度 |
SqrMagnitude() |
float |
获取长度平方 |
Normalized() |
Vector2 |
获取归一化副本 |
运算符
- 算术:
+,-,*(scalar),/(scalar) - 复合赋值:
+=,-=,*=,/= - 比较:
==,!=
使用示例
Vector2 pos(5.0f, 3.0f);
Vector2 dir = Vector2::Normalize(pos);
float len = pos.Magnitude();
Vector2 lerped = Vector2::Lerp(pos, Vector2::Zero(), 0.5f);