根據三個點的坐標計算其夾角


求給定三個點的夾角,其實是求<⃗ ,⃗ >兩個向量之間的夾角α 。本文采用如下公式求解。

cosα=A×B/AB

源代碼(Java)如下:

private double getAngleByThreeP(double[] pointx, double[] pointy) {
        double a_b_x = pointx[0] - pointx[1];
        double a_b_y = pointy[0] - pointy[1];
        double c_b_x = pointx[2] - pointx[1];
        double c_b_y = pointy[2] - pointy[1];
        double ab_mul_cb = a_b_x * c_b_x + a_b_y * c_b_y;
        double dist_ab = Math.sqrt(a_b_x * a_b_x + a_b_y * a_b_y);
        double dist_cd = Math.sqrt(c_b_x * c_b_x + c_b_y * c_b_y);
        double cosValue = ab_mul_cb / (dist_ab * dist_cd);
        return Math.acos(cosValue);
    }

求出來的結果是弧度值(另:角度值=弧度*180/π)

轉載自【搬磚程序員


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM