Swift 计算三角形角度、两条边夹角

    /// 计算三点之间的角度
    ///
    /// - Parameters:
    ///   - p1: 点1
    ///   - p2: 点2(也是角度所在点)
    ///   - p3: 点3
    /// - Returns: 角度(180度制)
    func getAnglesWithThreePoints(p1:CGPoint,p2:CGPoint,p3:CGPoint) -> Double {
        let a = p1.x - p2.x
        let b = p1.y - p2.y
        let c = p3.x - p2.x
        let d = p3.y - p2.y
        let e = (a*c+b*d)
        let f = sqrt(a*a+b*b)
        let g = sqrt(c*c+d*d)
        
        let r = Double(acos(e/(f*g)))
        return (180*r/Double.pi)
    }

P2位置就是要计算的角度。 

ps:这个坐标点是基于iOS上的,左上角为原点,所以直接获取点即可。

猜你喜欢

转载自www.cnblogs.com/yajunLi/p/9204799.html