2 个版本
0.5.0-a2 | 2022年5月14日 |
---|
#79 在 #piston
10KB
230 行
四元数
从 quaternion 获得了一些灵感,以及大量由 Copilot 生成的代码。
文档 https://docs.rs/crate/quaternions .
许可协议
以下任一许可协议下授权:
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
欢迎贡献。
lib.rs
:
一个使用特质的更简单的四元数数学库。
extern crate quaternions;
use quaternions::{Quaternion, q, qi};
let a = Quaternion { w: 1.0, x: 2.0, y: 3.0, z: 4.0 };
a.w;
// quick creates
let b1 = q::<f32>(1.0, 2.0, 3.0, 4.0);
// quick creates with integers
let b2 = qi::<f32>(1, 2, 3, 4);
b1 + b2;
b1 - b2;
b1 * b2;
b1 / b2;
b1.conjugate();
b1.scale(1.5);
b1.square_length();
b1.length();
b1.inverse();
还提供了可变的 API
extern crate quaternions;
use quaternions::{Quaternion, q, qi};
let mut c = Quaternion::id();
let b = qi::<f32>(1, 2, 3, 4);
c += b;
c -= b;
c *= b;
// no division
c.inverse_mut();
c.conjugate_mut();
c.scale_mut(1.5);
依赖
~155KB