Files
XCEngine/docs/api/math/box/intersects-ray.md

39 lines
841 B
Markdown
Raw Normal View History

# Box::Intersects (Ray)
```cpp
bool Intersects(const Ray& ray, float& t) const
```
2026-03-20 02:35:15 +08:00
检测盒体是否与射线相交。如果相交,通过 `t` 输出射线原点到交点的距离。
**参数:**
2026-03-20 02:35:15 +08:00
- `ray` - 要检测的射线
- `t` - 输出交点距离(如果返回 true
2026-03-20 02:35:15 +08:00
**返回:** `bool` - 相交返回 true否则返回 false
**线程安全:** ✅
**复杂度:** O(1)
**示例:**
```cpp
2026-03-20 02:35:15 +08:00
#include <XCEngine/Math/Box.h>
#include <XCEngine/Math/Ray.h>
using namespace XCEngine::Math;
Box box(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f));
Ray ray(Vector3(0.0f, 0.0f, -5.0f), Vector3(0.0f, 0.0f, 1.0f));
float t;
if (box.Intersects(ray, t)) {
2026-03-20 02:35:15 +08:00
Vector3 hitPoint = ray.GetPoint(t);
}
```
2026-03-20 02:35:15 +08:00
## 相关文档
- [Box 类总览](box.md) - 返回类总览
- [Ray::Intersects](../ray/ray.md) - 射线相交检测