3个版本

0.1.2 2023年12月7日
0.1.1 2023年12月6日
0.1.0 2023年12月6日

#148 in 地理空间


用于intersection_detection

MIT/Apache

12KB
243

intersection_detection

此crate提供了在二维空间中计算线段交点的功能。它定义了表示交点的类型,并包含检查交点结果、在交点类型之间转换以及将交点组件四舍五入到指定精度的方法。

用法

要使用此crate,将其添加到您的Cargo.toml文件中的依赖项

[dependencies]
intersection_detection = "0.1.3"

示例

use intersection_detection::{IntersectionResult, Line, PointLike};

fn main() {
    let line1 = Line::new([0.0, 0.0], [1.0, 1.0]);
    let line2 = Line::new([0.0, 1.0], [1.0, 0.0]);

    let computation = line1
            .intersection(&line2)
            .try_into_intersection()
            .ok();

    assert_eq!(computation, Some(Intersection::Point([0.5, 0.5])));
}

实现FromIntoPointLike以使用自定义类型作为点。

提供以下内置实现

  • [F; 2]
  • [F; 3]
  • (F,F)
  • (F,F,F)

注意: 此crate重新导出point_like crate,这是一个可以用于点的特质。这里的想法是让用户确定浮点精度并避免强制使用特定的代数crate。然而,PointLike中的大多数方法都“灵感来自”glam crate,所以我建议如果您对f32没有异议,则使用它。

依赖项

~0.7–1.2MB
~26K SLoC