#line-segment #intersection #2d #detection #space #computing #points

intersection_detection

计算二维线条之间的交点

4个版本

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

#6 in #line-segment

MIT/Apache

25KB
478

intersection_detection

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

用法

要使用此软件包,将其添加到您的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)

注意:此软件包重新导出point_like软件包,这是一个可以用于点的类型特例。这里的想法是让用户决定浮点精度,避免强制使用特定的代数软件包。然而,PointLike中的大多数方法都是受glam软件包启发的,所以如果您对使用f32没有问题,我建议您使用它。

依赖项

~0.7–1.2MB
~27K SLoC