tsmathlib
Version:
Typescript Version Math/Physics/CG Library
52 lines (40 loc) • 1.13 kB
text/typescript
/*
* @Author: Xu.Wang
* @Date: 2020-03-28 02:04:37
* @Last Modified by: Xu.Wang
* @Last Modified time: 2020-04-03 19:22:21
* @Description: simple math functions
*/
import { Vector3 } from './vector3'
export function absMax(x: number, y: number) {
return x * x > y * y ? x : y
}
export function absMin(x: number, y: number) {
return x * x < y * y ? x : y
}
export function muldec(x: number, y: number) {
return (x * 10 * (y * 10)) / 100
}
export function divdec(x: number, y: number) {
return (x * 10) / (y * 10) / 100
}
export function swap(x: number, y: number) {
return [y, x]
}
export function square(x: number) {
return x * x
}
export function clamp(val: number, min: number, max: number): number {
return Math.min(Math.max(min, val), max)
}
export function clampV3(val: Vector3, min: Vector3, max: Vector3) {
return new Vector3(
clamp(val.x(), min.x(), max.x()),
clamp(val.y(), min.y(), max.y()),
clamp(val.z(), min.z(), max.z())
)
}
export function isSimilar(val1: number, val2: number, epsilon: number) {
if (Math.abs(val1 - val2) > epsilon) return false
return true
}