18 个版本

0.14.1 2024 年 8 月 10 日
0.11.2 2020 年 10 月 19 日
0.9.2 2019 年 12 月 2 日
0.9.1 2018 年 10 月 5 日
0.8.2 2018 年 5 月 4 日

#6 in #intersection

Download history 1/week @ 2024-05-06 4/week @ 2024-05-13 5/week @ 2024-05-20 1/week @ 2024-06-03 8/week @ 2024-06-10 5/week @ 2024-06-24 6/week @ 2024-07-01 1/week @ 2024-07-08 4/week @ 2024-07-15 8/week @ 2024-07-29 203/week @ 2024-08-05 45/week @ 2024-08-12

每月下载量256
用于 2 crates

MIT 许可证

17KB
247 代码行

bbox

test workflow build workflow Cargo License: MIT Downloads

bbox 是一个用于管理对齐的 3D 边界框的 crate。边界框可以通过 CSG 操作创建、膨胀、变换和与其他边界框合并。最后,您可以测试边界框是否包含某个点以及点与盒子的近似距离。

示例

相交两个边界框

use nalgebra as na;
let bbox1 = bbox::BoundingBox::<f64>::new(na::Point3::new(0., 0., 0.),
                                          na::Point3::new(1., 2., 3.));
let bbox2 = bbox::BoundingBox::<f64>::new(na::Point3::new(-1., -2., -3.),
                                          na::Point3::new(3., 2., 1.));
let intersection = bbox1.intersection(&bbox2);

旋转边界框

use nalgebra as na;
let rotation = na::Rotation::from_euler_angles(10., 11., 12.).to_homogeneous();
let bbox = bbox::BoundingBox::<f64>::new(na::Point3::new(0., 0., 0.),
                                         na::Point3::new(1., 2., 3.));
let rotated_box = bbox.transform(&rotation);

点是否在盒子内?

use nalgebra as na;
let bbox = bbox::BoundingBox::<f64>::new(na::Point3::new(0., 0., 0.),
                                         na::Point3::new(1., 2., 3.));
let result = bbox.contains(na::Point3::new(1., 1., 1.));

计算点与盒子的近似距离

use nalgebra as na;
let bbox = bbox::BoundingBox::<f64>::new(na::Point3::new(0., 0., 0.),
                                         na::Point3::new(1., 2., 3.));
let distance = bbox.distance(na::Point3::new(1., 1., 1.));

Cargo 功能

  • mint - 通过 mint 接口启用与其他数学库的互操作性。

许可证

根据 MIT 许可证 许可。

依赖关系

~3MB
~57K SLoC