XScript 手册 · Chapter 31
中文翻译准备中,请参阅英文版。
double dist = MATH.CalcDistance(x1, y1, x2, y2);
double angle = MATH.CalcAngle(x1, y1, x2, y2);
double min = MATH.Min(a, b);
double clamped = MATH.Clamp(value, 0.0, 100.0);MATH 全函数一览(XUtilMath)
依据 C# 源码 — 脚本可直接调用的所有函数。
基础 / 比较
| 函数 | 含义 |
|---|---|
MATH.Abs(value) | 绝对值 |
MATH.Min(a, b) / MATH.Max(a, b) | 最小 / 最大 |
MATH.Clamp(int, min, max) / (double, min, max) | 范围限制 |
MATH.Floor(value) | 向下取整 |
MATH.Round(value, fix) | 保留 fix 位小数 |
三角函数(角度)
| 函数 | 含义 |
|---|---|
MATH.Sin(deg) / MATH.Cos(deg) / MATH.Tan(deg) | 正弦 · 余弦 · 正切 |
MATH.ASin(value) / MATH.ACos(value) / MATH.ATan(value) | 反三角(弧度,需要可用 RadToDeg) |
MATH.ATan2(y, x) | 保留象限的反正切 |
MATH.DegToRad(angle) / MATH.RadToDeg(angle) | 单位转换 |
几何
| 函数 | 含义 |
|---|---|
MATH.CalcDistance(x1, y1, x2, y2) | 两点距离 |
MATH.CalcAngle(x1, y1, x2, y2) | 两点角度(度) |
MATH.CalcRotate(cx, cy, sx, sy, angle, ref tx, ref ty) | 以 (cx,cy) 为中心、按 angle° 旋转 (sx,sy) |
MATH.CalcOffsetPoint(cx, cy, sx, sy, offset, ref tx, ref ty) | 沿直线方向偏移 offset 的点 |
MATH.TransformTrapezoidToSquare(x1..y4, x, y, ref newX, ref newY) | 四边形 → 单位正方形坐标(畸变校正) |
MATH.FindCrossPointTwoLines(...) | 两直线交点(4 种重载) |
MATH.FindIntersection(p1, p2, p3, p4, ...) | 两线段交点 |
MATH.FindCircle(a, b, c, out center, out radius) | 三点定圆 |
MATH.CalcPointDistance(pt1, pt2) | 两 Point 距离 |
MATH.CalcPointAngle(pt1, pt2) | 两 Point 角度 |
线性转换器(LCVT)
物理单位 ↔ 机械单位(编码器脉冲、电压、原始值)用的分段线性插值表。
| 函数 | 含义 |
|---|---|
MATH.LCVT_SetName(index, name) | 槽位命名 |
MATH.LCVT_Clear(index) | 清空槽位 |
MATH.LCVT_Add(index, x, y, log=true) | 加入校准点 |
MATH.LCVT_GetValueY(index, x, ref y) | x → 插值 y |
MATH.LCVT_GetValueX(index, y, ref x) | y → 反算 x |