已知圆心坐标和圆上一点,求旋转后该点坐标

计算公式

  • 弧度制角度转换
    弧度 = π / 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 };
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容