#几何 #

mathie

一个Rust数学类型库

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次下载

MIT/Apache

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