计算公式
弧度制角度转换
弧度 = π / 180 * 角度
角度 = 180 / π * 弧度圆心坐标 (a, b) P点坐标(x0, y0) 弧度 α
x1 = a + (x0 - a) * cosα - (y0 - b) * sinα
y1 = b + (x0 - a) * sinα + (y0 - b) * cosα
/**
* 通过当前P点和旋转角度计算旋转之前的点
*/
computePosition(x: number, y: number, angle: number): {x: number, y: number} {
// 圆心
let a: number = this.img.anchorOffsetX;
let b: number = this.img.anchorOffsetY;
// 计算
let c: number = -Math.PI / 180 * angle;
let rx: number = (x - a) * Math.cos(c) - (y - b) * Math.sin(c) + a;
let ry: number = (y - b) * Math.cos(c) + (x - a) * Math.sin(c) + b;
// 取整
rx = Math.round(rx);
ry = Math.round(ry);
return { x: rx, y: ry };
}