跳到主要内容

compileAngle 编译角度对象

compileAngle

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

编译角度对象

参数 angle: 角度访问器

返回值:角度访问器函数(弧度)

参数

参数名类型描述默认值
angleAngleGetter--

返回值

类型: (origin?: any) => number

角度访问器函数(弧度)

源代码

位置: 第 707 行

private compileAngle(angle: AngleGetter): (origin?: any) => number {
switch (angle.type) {
case "position": {
const getPoint = Command.compilePosition(angle.position);
return origin => {
const point = getPoint();
if (point) {
const distY = point.y - origin.y;
const distX = point.x - origin.x;
return Math.atan2(distY, distX);
}
return origin.angle ?? 0;
};
}
case "absolute": {
const getDegrees = Command.compileNumber(angle.degrees);
return () => Math.radians(getDegrees());
}
case "relative": {
const getDegrees = Command.compileNumber(angle.degrees);
return origin => (origin.angle ?? 0) + Math.radians(getDegrees());
}
case "direction": {
const radians = Math.radians(angle.degrees);
return origin => {
const animation = origin.animation;
if (animation) {
return animation.getDirectionAngle() + radians;
}
return radians;
};
}
case "random": {
const radians = Math.PI * 2;
return () => Math.random() * radians;
}
}
}

文档生成时间:2026/2/1 16:51:39