5 个不稳定版本
0.3.1 | 2021 年 9 月 22 日 |
---|---|
0.3.0 |
|
0.2.0 | 2021 年 8 月 27 日 |
0.1.2 | 2021 年 8 月 14 日 |
在 模拟 中排名 #398
350KB
956 行
veccentric
小巧的 2D 向量库。灵感来自 p5.js 的 p5.Vector
。
用法
将 veccentric
添加到您的 Cargo.toml
。
[dependencies]
veccentric = "0.3"
Vecc<T>
的基本算术运算。
use veccentric::Vecc;
let a = Vecc::new(3_i32, 4);
let b = a * 5;
let c = Vecc::new(-10, -8);
let d = b - c;
let e = -d;
Fecc
扩展 API。
use veccentric::Fecc;
let a: Fecc = (3.0, 4.0).into();
let b = a / 0.2;
let c = b.limit(20.0);
let d = c.rotate(PI);
let e = d.turn(0.0);
lib.rs
:
小巧的 2D 向量库。灵感来自 p5.js 的 p5.Vector
。
主要类型,Vecc<T>
,是一个泛型结构体,实现了许多有用的特性和运算符重载。 Fecc
是 Vecc<f64>
的别称。它有一个扩展 API,灵感主要来自 p5.Vector
。
特性
开启 random
特性为 Fecc
提供了额外的功能: from_rng
,from_seed
,from_entropy
。
开启 all
特性仅开启 random
。
注意
一些示例使用了 float_cmp::assert_approx_eq
。
示例
use veccentric::Fecc;
let a = Fecc::new(3.0, 4.0);
assert_approx_eq!(f64, a.mag(), 5.0);
let five_a = a * 5.0;
assert_approx_eq!(f64, five_a.mag(), 25.0);
let b = Fecc::new(-3.0, 0.0);
let c = a + b; // (0.0, 4.0)
assert_approx_eq!(f64, c.angle(), PI / 2.0);