Files
XCEngine/docs/api/math/vector2/vector2.md

2.5 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 朝目标移动
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);

相关文档