# Sphere **命名空间**: `XCEngine::Math` **类型**: `struct` **头文件**: `XCEngine/Core/Math/Sphere.h` **描述**: 球体,用于碰撞检测和范围查询 ## 概述 `Sphere` 是三维空间中的球体结构体,包含一个中心点 `center` 和半径 `radius`。主要用于碰撞检测和范围查询等几何计算场景。 ## 结构体成员 | 成员 | 类型 | 描述 | 默认值 | |------|------|------|--------| | `center` | `Vector3` | 球体中心点 | `Vector3::Zero()` | | `radius` | `float` | 球体半径 | `0.0f` | ## 公共方法 | 方法 | 描述 | 线程安全 | 复杂度 | |------|------|----------|--------| | [`Sphere()`](sphere-default-constructor.md) | 默认构造,零初始化 | ✅ | O(1) | | [`Sphere(const Vector3&, float)`](sphere-constructor.md) | 从中心和半径构造球体 | ✅ | O(1) | | [`Contains`](contains.md) | 检测点是否在球体内 | ✅ | O(1) | | [`Intersects`](intersects.md) | 检测两个球体是否相交 | ✅ | O(1) | ## 使用示例 ```cpp #include #include using namespace XCEngine::Math; Sphere sphere(Vector3(0.0f, 0.0f, 0.0f), 1.0f); Vector3 point(0.5f, 0.5f, 0.0f); if (sphere.Contains(point)) { // point is inside the sphere } Sphere other(Vector3(1.5f, 0.0f, 0.0f), 1.0f); if (sphere.Intersects(other)) { // spheres intersect } ``` ## 相关文档 - [Math 模块总览](../math.md) - Math 模块总览