# Vector2 **命名空间**: `XCEngine::Math` **类型**: `struct` **头文件**: `XCEngine/Math/Vector2.h` **描述**: 二维向量,支持 2D 游戏开发和图形计算 ## 概述 Vector2 是 XCEngine 中的二维向量结构体,用于表示 2D 空间中的点、方向或颜色。提供完整的向量运算支持,包括加、减、乘、除等算术运算,以及点积、叉积、归一化、插值等数学运算。广泛应用于游戏开发中的位置表示、方向控制、碰撞检测和颜色计算等场景。 ## 结构体成员 | 成员 | 类型 | 描述 | 默认值 | |------|------|------|--------| | `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) | 实例方法,返回归一化副本 | ## 运算符 | 运算符 | 描述 | |--------|------| | `+`, `-` | 向量加减运算 | | `*`, `/` | 向量与标量乘除运算 | | `+=`, `-=`, `*=`, `/=` | 复合赋值运算 | | `==`, `!=` | 相等性比较(基于 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); ``` ## 相关文档 - [Math 模块总览](../math.md) - 返回 Math 模块总览