次のように逆余弦関数を使用して、3 つの点 (点の 1 つは 2 つの線の交点) によって形成される 2 つの線の間の角度を計算します。
CGFloat a = initialPosition.x - origin.x;
CGFloat b = initialPosition.y - origin.y;
CGFloat c = currentPosition.x - origin.x;
CGFloat d = currentPosition.y - origin.y;
CGFloat angle = (180/M_PI) * acosf(((a*c) + (b*d)) / ((sqrt(a*a + b*b)) * (sqrt(c*c + d*d))));
残念ながら、acosf は 0 から pi の間の値のみを返します。0 から 2*pi の間の値を見つけるにはどうすればよいですか (たとえば、反時計回りに)?