已知圓心坐標(biāo)和圓上一點(diǎn),求旋轉(zhuǎn)后該點(diǎn)坐標(biāo)

計(jì)算公式

  • 弧度制角度轉(zhuǎn)換
    弧度 = π / 180 * 角度
    角度 = 180 / π * 弧度

  • 圓心坐標(biāo) (a, b) P點(diǎn)坐標(biāo)(x0, y0) 弧度 α
    x1 = a + (x0 - a) * cosα - (y0 - b) * sinα
    y1 = b + (x0 - a) * sinα + (y0 - b) * cosα

  /**
    * 通過當(dāng)前P點(diǎn)和旋轉(zhuǎn)角度計(jì)算旋轉(zhuǎn)之前的點(diǎn)
    */
    computePosition(x: number, y: number, angle: number): {x: number, y: number} {
        // 圓心
        let a: number = this.img.anchorOffsetX;
        let b: number = this.img.anchorOffsetY;
        // 計(jì)算
        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 };
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容