2.4 KiB
2.4 KiB
Vector2
命名空间: XCEngine::Math
类型: struct
头文件: XCEngine/Math/Vector2.h
描述: 二维向量,支持 2D 游戏开发和图形计算
概述
Vector2 是 XCEngine 中的二维向量结构体,用于表示 2D 空间中的点、方向或颜色。提供完整的向量运算支持,包括加、减、乘、除等算术运算,以及点积、叉积、归一化、插值等数学运算。广泛应用于游戏开发中的位置表示、方向控制、碰撞检测和颜色计算等场景。
结构体成员
| 成员 | 类型 | 描述 | 默认值 |
|---|---|---|---|
x |
float |
X 分量 | 0.0f |
y |
float |
Y 分量 | 0.0f |
公共方法
| 方法 | 描述 |
|---|---|
Zero |
返回 (0, 0) 零向量 |
One |
返回 (1, 1) 单位向量 |
Up |
返回 (0, 1) 上方向 |
Down |
返回 (0, -1) 下方向 |
Right |
返回 (1, 0) 右方向 |
Left |
返回 (-1, 0) 左方向 |
Dot |
计算两个向量的点积 |
Cross |
计算两个向量的叉积(返回标量) |
Normalize |
归一化向量为单位长度 |
Magnitude |
计算向量长度 |
SqrMagnitude |
计算向量长度平方 |
Lerp |
线性插值 |
MoveTowards |
朝目标移动 |
Magnitude |
实例方法,计算当前向量长度 |
SqrMagnitude |
实例方法,计算当前向量长度平方 |
Normalized |
实例方法,返回归一化副本 |
运算符
| 运算符 | 描述 |
|---|---|
+, - |
向量加减运算 |
*, / |
向量与标量乘除运算 |
+=, -=, *=, /= |
复合赋值运算 |
==, != |
相等性比较(基于 EPSILON 浮点比较) |
使用示例
#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 模块总览