3个版本
0.1.2 | 2023年12月7日 |
---|---|
0.1.1 | 2023年12月6日 |
0.1.0 | 2023年12月6日 |
#148 in 地理空间
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