mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-12-14 22:54:32 +08:00
文件分类新增压缩解压,数学分类新增统计、几何、三角、单位换算
This commit is contained in:
143
plugin/lib/quickcomposer/math/trigonometry.js
Normal file
143
plugin/lib/quickcomposer/math/trigonometry.js
Normal file
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
* 角度转弧度
|
||||
* @param {number} degrees 角度
|
||||
* @returns {number} 弧度
|
||||
*/
|
||||
function degreesToRadians(degrees) {
|
||||
return (degrees * Math.PI) / 180;
|
||||
}
|
||||
|
||||
/**
|
||||
* 弧度转角度
|
||||
* @param {number} radians 弧度
|
||||
* @returns {number} 角度
|
||||
*/
|
||||
function radiansToDegrees(radians) {
|
||||
return (radians * 180) / Math.PI;
|
||||
}
|
||||
|
||||
/**
|
||||
* 正弦函数
|
||||
* @param {number} angle 角度
|
||||
* @param {boolean} [useRadians=false] 是否使用弧度
|
||||
* @returns {number} 正弦值
|
||||
*/
|
||||
function sin(angle, useRadians = false) {
|
||||
const rad = useRadians ? angle : degreesToRadians(angle);
|
||||
return Math.sin(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 余弦函数
|
||||
* @param {number} angle 角度
|
||||
* @param {boolean} [useRadians=false] 是否使用弧度
|
||||
* @returns {number} 余弦值
|
||||
*/
|
||||
function cos(angle, useRadians = false) {
|
||||
const rad = useRadians ? angle : degreesToRadians(angle);
|
||||
return Math.cos(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 正切函数
|
||||
* @param {number} angle 角度
|
||||
* @param {boolean} [useRadians=false] 是否使用弧度
|
||||
* @returns {number} 正切值
|
||||
*/
|
||||
function tan(angle, useRadians = false) {
|
||||
const rad = useRadians ? angle : degreesToRadians(angle);
|
||||
return Math.tan(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 反正弦函数
|
||||
* @param {number} value 正弦值
|
||||
* @param {boolean} [returnRadians=false] 是否返回弧度
|
||||
* @returns {number} 角度或弧度
|
||||
*/
|
||||
function asin(value, returnRadians = false) {
|
||||
if (value < -1 || value > 1) {
|
||||
throw new Error("反正弦函数的输入值必须在 [-1, 1] 范围内");
|
||||
}
|
||||
const rad = Math.asin(value);
|
||||
return returnRadians ? rad : radiansToDegrees(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 反余弦函数
|
||||
* @param {number} value 余弦值
|
||||
* @param {boolean} [returnRadians=false] 是否返回弧度
|
||||
* @returns {number} 角度或弧度
|
||||
*/
|
||||
function acos(value, returnRadians = false) {
|
||||
if (value < -1 || value > 1) {
|
||||
throw new Error("反余弦函数的输入值必须在 [-1, 1] 范围内");
|
||||
}
|
||||
const rad = Math.acos(value);
|
||||
return returnRadians ? rad : radiansToDegrees(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 反正切函数
|
||||
* @param {number} value 正切值
|
||||
* @param {boolean} [returnRadians=false] 是否返回弧度
|
||||
* @returns {number} 角度或弧度
|
||||
*/
|
||||
function atan(value, returnRadians = false) {
|
||||
const rad = Math.atan(value);
|
||||
return returnRadians ? rad : radiansToDegrees(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 双参数反正切函数
|
||||
* @param {number} y y坐标
|
||||
* @param {number} x x坐标
|
||||
* @param {boolean} [returnRadians=false] 是否返回弧度
|
||||
* @returns {number} 角度或弧度
|
||||
*/
|
||||
function atan2(y, x, returnRadians = false) {
|
||||
const rad = Math.atan2(y, x);
|
||||
return returnRadians ? rad : radiansToDegrees(rad);
|
||||
}
|
||||
|
||||
/**
|
||||
* 双曲正弦函数
|
||||
* @param {number} x 输入值
|
||||
* @returns {number} 双曲正弦值
|
||||
*/
|
||||
function sinh(x) {
|
||||
return Math.sinh(x);
|
||||
}
|
||||
|
||||
/**
|
||||
* 双曲余弦函数
|
||||
* @param {number} x 输入值
|
||||
* @returns {number} 双曲余弦值
|
||||
*/
|
||||
function cosh(x) {
|
||||
return Math.cosh(x);
|
||||
}
|
||||
|
||||
/**
|
||||
* 双曲正切函数
|
||||
* @param {number} x 输入值
|
||||
* @returns {number} 双曲正切值
|
||||
*/
|
||||
function tanh(x) {
|
||||
return Math.tanh(x);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
degreesToRadians,
|
||||
radiansToDegrees,
|
||||
sin,
|
||||
cos,
|
||||
tan,
|
||||
asin,
|
||||
acos,
|
||||
atan,
|
||||
atan2,
|
||||
sinh,
|
||||
cosh,
|
||||
tanh,
|
||||
};
|
||||
Reference in New Issue
Block a user