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

55 lines
1.4 KiB
Markdown
Raw Normal View History

# Sphere
2026-03-20 02:35:15 +08:00
**命名空间**: `XCEngine::Math`
2026-03-20 02:35:15 +08:00
**类型**: `struct`
2026-03-20 02:35:15 +08:00
**头文件**: `XCEngine/Math/Sphere.h`
2026-03-20 02:35:15 +08:00
**描述**: 球体,用于碰撞检测和范围查询
## 概述
`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
2026-03-20 02:35:15 +08:00
#include <XCEngine/Math/Sphere.h>
#include <XCEngine/Math/Vector3.h>
2026-03-20 02:35:15 +08:00
using namespace XCEngine::Math;
2026-03-20 02:35:15 +08:00
Sphere sphere(Vector3(0.0f, 0.0f, 0.0f), 1.0f);
2026-03-20 02:35:15 +08:00
Vector3 point(0.5f, 0.5f, 0.0f);
if (sphere.Contains(point)) {
// point is inside the sphere
}
2026-03-20 02:35:15 +08:00
Sphere other(Vector3(1.5f, 0.0f, 0.0f), 1.0f);
if (sphere.Intersects(other)) {
// spheres intersect
}
```
## 相关文档
2026-03-20 02:35:15 +08:00
- [Math 模块总览](../math.md) - Math 模块总览