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上的,左上角为原点,所以直接获取点即可。