10个版本 (6个破坏性更新)
0.6.0 | 2022年10月6日 |
---|---|
0.5.0 | 2022年8月11日 |
0.4.0 | 2022年8月11日 |
0.3.1 | 2022年8月10日 |
0.0.3 | 2022年8月6日 |
#770 在 数学
每月 31次下载
31KB
635 行
Mathie
概述
Mathie是一个Rust数学类型库,它包含了进行2D操作所需的3种基本类型。
Value
单个数值。Vec2
二维位置。Rect
有原点和大小的二维区域。
数学
使用内置类型进行数学运算旨在简单而强大。所有类型都支持加法、减法、乘法、除法和余数。
fn add() {
assert_eq!(Vec2D::new(0.5, 0.5) + Vec2D::new(1.0, 1.0), Vec2D::new(1.5, 1.5));
assert_eq!(Vec2D::new(0.5, 0.5) + 1.0, Vec2D::new(1.5, 1.5));
}
单位
此库运行在可选的概念上,这些概念可以是可量化的,并且设计用于在不思考的情况下轻松转换。
fn cm_to_m() {
let v0 = Vec2D::<f32, Centimeter>::new_def(250.0, 250.0);
// () is base unit. In all cases its Meter
let v1 = v0.convert::<()>();
assert_eq!(v1, Vec2D::new_def(2.5, 2.5));
}
有一些内置的可选单位。
metric_units
20个公制前缀imperial_units
10个英制前缀nautical_units
海里
兼容性
此库具有与像euclid
这样的其他数学类型库兼容的可选功能。
fn euclid_compat() {
let _: Vec2D<f32, ()> = euclid::Vector2D::new(1.0, 1.0).into();
}
依赖项
~95–445KB