zoukankan      html  css  js  c++  java
  • Swift 计算三角形角度、两条边夹角

        /// 计算三点之间的角度
        ///
        /// - Parameters:
        ///   - p1: 点1
        ///   - p2: 点2(也是角度所在点)
        ///   - p3: 点3
        /// - Returns: 角度(180度制)
        func getAnglesWithThreePoints(p1:CGPoint,p2:CGPoint,p3:CGPoint) -> Double {
            //排除特殊情况,三个点一条线
            if (p1.x == p2.x && p2.x == p3.x) || ( p1.y == p2.x && p2.x == p3.x){
                return 0
            }
            
            let a = fabs(p1.x - p2.x)
            let b = fabs(p1.y - p2.y)
            let c = fabs(p3.x - p2.x)
            let d = fabs(p3.y - p2.y)
            
            if (a < 1.0 && b < 1.0) || (c < 1.0 && d < 1.0){
                return 0
            }
            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 r        //弧度值
            
    //        return (180*r/Double.pi)      //角度值
    
        }

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

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

  • 相关阅读:
    WEEK
    更新yum源
    Centos6.9安装Mysql5.7.18
    gitlab使用
    gitlab安装
    git客户端
    服务器端配置
    错误问题
    服务器端
    01找出数组中重复的数
  • 原文地址:https://www.cnblogs.com/yajunLi/p/9204799.html
Copyright © 2011-2022 走看看