Files
XCEngine/docs/api/math/ray/intersects-box.md
2026-03-20 02:35:15 +08:00

42 lines
904 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ray::Intersects (box)
```cpp
bool Intersects(const Box& box, float& t) const
```
检测射线是否与有向包围盒OBB相交。使用 slabs 方法计算交点。
**参数:**
- `box` - 要检测的有向包围盒OBB
- `t` - 输出交点的参数距离(仅在返回 true 时有效)
**返回:** `bool` - 相交返回 true否则返回 false
**线程安全:**
**复杂度:** O(1)
**异常:**
**示例:**
```cpp
#include <XCEngine/Math/Ray.h>
#include <XCEngine/Math/Box.h>
#include <XCEngine/Math/Vector3.h>
using namespace XCEngine::Math;
Ray ray(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.0f, 0.0f));
Box box(Vector3(10.0f, 0.0f, 0.0f), Vector3(1.0f, 1.0f, 1.0f));
float t;
if (ray.Intersects(box, t)) {
Vector3 hitPoint = ray.GetPoint(t);
}
```
## 相关文档
- [Ray 类总览](ray.md) - 返回类总览
- [Box](../box/box.md) - 包围盒类型