这是icanvas的数学功能包
npm install @icanvas/maths---
Time.Date 时间
方法
Time.Set(value,format) 设置时间
Time.ToWeek(n) 将时间前往本周的某一天
Time.Get(format) 获取时间
Time.GetWeek(n,format) 将时间前往本周的某一天并获取时间
Time.OneDay(time1,time2,format1,format2) 比较日期同一天
Time.OneWeek(time1,time2,format1,format2) 比较日期同一周
---
Random(a=2,b=0) 获取随机值从b到a+b-1
Random.To(a,b) 获取随机值从a到b
Random.Array(arr) 从数组arr中获取一个随机值
Random.Array.Keys(arr,length =1) 从数组arr总获取length个长度的随机键
Random.Array.Values(arr,length =1) 从数组arr总获取length个长度的随机值
---
Color.hex2rgb() 16进制数字转10进制颜色数组
Color.hex2string() 16进制数字转16进制字符串颜色
Color.string2hex() 16进制字符串颜色转16进制数字
Color.rgb2hex() 10进制颜色数组转16进制数字
---
javascript
let Pos = new Position();
`
属性Pos.width 全宽Pos.height 全高Pos.center 半宽只读Pos.middle 半高只读方法
Pos.getX(n) 按全宽的比例获取长度Pos.getY(n) 按全高的比例获取长度---
Array 扩展数组
`javascript
let Arr = new Array();
`
属性Arr.Int8Array 从本实例新建一个Int8Array数组Arr.Uint8Array 从本实例新建一个Uint8Array数组Arr.Uint8ClampedArray 从本实例新建一个Uint8ClampedArray数组Arr.Int16Array 从本实例新建一个Int16Array数组Arr.Uint16Array 从本实例新建一个Uint16Array数组Arr.Int32Array 从本实例新建一个Int32Array数组Arr.Uint32Array 从本实例新建一个Uint32Array数组Arr.Float32Array 从本实例新建一个Float32Array数组Arr.Float64Array 从本实例新建一个Float64Array数组Arr.BigInt64Array 从本实例新建一个BigInt64Array数组Arr.BigUint64Array 从本实例新建一个BigUint64Array数组方法
Arr.set(n) 将本数组数据全部设置为nArr.setToArray(arr) 将本数组设置为arr数组的内容Arr.setTo(...arg) 将本数组设置为实参数组的内容Arr.clone(n) 复制一个本实例Arr.equals(arr,absolute=true) 判断本数组是否与arr数组(相等/完全相同)Arr.equalsSome(n) 判断本数组是否与实参数组完全相同---
Vector 基础向量
继承自Array扩展数组
`javascript
let Arr = new Vector();
`
方法Arr.add(n) 类似Arr.set采用加法而不是覆盖Arr.addToVector(arr) 类似Arr.setToArray采用加法而不是覆盖Arr.addTo(...arg) 类似Arr.setTo采用加法而不是覆盖Arr.sub(n) 类似Arr.set采用减法而不是覆盖Arr.subToVector(arr) 类似Arr.setToArray采用减法而不是覆盖Arr.subTo(...arg) 类似Arr.setTo采用减法而不是覆盖Arr.mult(n) 类似Arr.set采用乘法而不是覆盖Arr.multToVector(arr) 类似Arr.setToArray采用乘法而不是覆盖Arr.multTo(...arg) 类似Arr.setTo采用乘法而不是覆盖Arr.div(n) 类似Arr.set采用除法而不是覆盖Arr.divToVector(arr) 类似Arr.setToArray采用除法而不是覆盖Arr.divTo(...arg) 类似Arr.setTo采用除法而不是覆盖Arr.zero() 将本数组内容全部设置为0---
Vector2 二维向量
继承自Vector基础向量
`javascript
let Arr = new Vector2(0,0);
`
属性Arr.x 获取第一个参数Arr.y 获取第二个参数方法
Arr.rotate(n) 向量旋转Arr.distTo(x,y) 计算到另一个坐标的距离Arr.dist(vector2) 计算和另一个二维数组的距离Arr.mag() 计算到原点的距离---
Vector3 三维向量
继承自Vector基础向量
`javascript
let Arr = new Vector3();
`
Arr.normalize() 归一化---
Matrix3 二维矩阵
继承自Array扩展数组
`javascript
let Arr = new Matrix3(1,0,0,1,0,0);
`
属性Arr.a 获取第一个参数Arr.b 获取第二个参数Arr.c 获取第三个参数Arr.d 获取第四个参数Arr.tx 获取第五个参数Arr.ty 获取第六个参数方法
Arr.identity() 重置矩阵为[1,0,0,1,0,0]Arr.translate(x,y) 二维矩阵位移Arr.rotate(a) 二维矩阵旋转Arr.scale(x,y) 二维矩阵缩放Arr.skew(x,y) 二维矩阵斜切Arr.invert() 设置为逆矩阵---
Matrix4 三维矩阵
继承自Array扩展数组
`javascript
let Arr = new Matrix4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);
`
方法Arr.identity() 重置矩阵为[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]Arr.multiply(matrix4)` 矩阵相乘