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
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