一、说明
CAD离不开角度数据,目前CAD开源项目多用double类型表示角度。我认为有必要独立出来,让三角函数仅出现该类内,方便管理。以下代码为初版,欢迎跟帖补充。
我使用的是win10 64位系统,vs_buildtools工具 2019版,rust版本 1.81.0。编辑器为Visual Studio Code 1.92.2版本。相关程序的安装需自行百度。
二、操作步骤
1、新建项目cad(cmd命令:cargo new cad);
2、进入对应目录(cmd命令:cd cad);
3、打开项目(cmd命令:code .);
4、在项目目录 src子目录下新建目录unit;
5、unit下新建rust文件 mod.rs和angle.rs;
三、角度单位
1、角度的国际单位是弧度,这是衡量角度的标准度量单位。弧度的定义是基于半径的长度与对应的圆心角的比值,它是一个无量纲的数,我用64位实数(f64)保存该值。
2、角度的单位还可以用度(°)来表示。度是历史上非常流行的单位,日常生活和一些工程制图中仍在广泛使用。我用degree 和 set_degree函数换算弧度与度单位。
3、少量场合,角度用梯度(gradient)来表示,我用gradient和from函数换算弧度与梯度单位。
四、源代码
1、 mod.rs 内容
pub mod angle;
2、angle.rs 内容
/*
* 角度弧度的类rad
** 编制人: $ource
* 修改版次及创建时间:0版完成版(2024年8月14日)
* 修改内容及时间:(2024年9月8日)
* 待完善问题:文本格式与Angle互转未实现;未检查及调整rad到(-π,π)或(0,2π)范围。暂时不需要这些属性.
*/
const PI:f64=std::f64::consts::PI;
const RADIAN2DEGREE:f64 = 180f64 / PI;
use std::ops::{
Add, Sub, Mul, Div};
//0°、30°、45°、60°、90°、180°角度常量
pub const ANGLE0:Angle=Angle{
rad:0f64};
pub const ANGLE30:Angle=Angle{
rad:PI/6f64};
pub const ANGLE60:Angle=Angle{
rad:PI/3f64};
pub const ANGLE45:Angle=Angle{
rad:PI/4f64};
pub const ANGLE90:Angle=Angle{
rad:PI/2f64};
pub const ANGLE180:Angle=Angle{
rad:PI};
#[derive(Debug,PartialEq,PartialOrd,Clone,Copy)]
pub struct Angle{
pub rad:f64,//外部可以访问该变量
}
impl <