6 个版本
0.1.2 | 2023 年 7 月 29 日 |
---|---|
0.1.1 | 2023 年 7 月 28 日 |
0.0.2 | 2023 年 7 月 26 日 |
在 数学 中排名第 385
每月下载量 29 次
29KB
498 行
i_mth
这是一个用于解决简单到复杂静态和动力学问题的 crate。
该 crate 尽量保持精简,方法名称直接对应其实际功能。
由于我是个怪人,有精度问题,所以目前库中的所有类型和将来要实现的功能都将使用 f64
数据类型。
用法
将其添加到 Cargo.toml
[dependencies]
i_mth = "0.1.2"
当前可用的 Crate 功能
- 支持 2D 和 3D 向量。
- 常见常量。
- 一个计算逃逸速度和其他天体加速度的实用模块。(未来将添加更多功能)。
目前正在开发中
- 支持矩阵、矩阵运算和变换
- 数值计算
示例
- 使用 i_mth 创建 2D 和 3D 向量
use i_mth::vector3d::Vector3D;
fn main() {
// there are several available methods to create vectors
let v3d_0 = Vector3D::new(1.0, 1.0, 1.0);
let v3d_1 = Vector3D::set(1.0);
assert_eq!(v3d_0, v3d_1);
}
- 力矩:力 F 在点 O 处的力矩可以定义为向量积(叉积)r 和 F。其中 r 是力作用点到固定参考点 O 之间的位置向量,即 力矩 = r x F
use i_mth::vector3d::Vector3D;
fn main() {
let f = Vector3D::new(400.0, 693.0, 0.0);
let r = Vector3D::new(-0.2, 0.16, 0.0);
let moment = r.cross(f);
assert_eq!(-202.6, moment.z);
}
- 使用实用工具计算 逃逸速度:逃逸速度或逃逸速度是自由、非推进物体脱离主天体引力影响所需的最小速度,从而到达无限距离。
use i_mth::utils::calc_escape_velocity;
fn main() {
let mass_of_moon = 7.342e22;
let radius_of_moon = 1737.4e3;
let escape_vel_of_moon = calc_escape_velocity(mass_of_moon, radius_of_moon);
println!("{} km/s", escape_vel_of_moon / 1000.0);
}
支持 fmt
use i_mth::vector3d::Vector3D;
fn main() {
let unit_i = Vector3D::i();
let unit_j = Vector3D::j();
let unit_k = unit_i.cross(unit_j);
println!("{}", unit_k);
}