Znajdowanie kąta za pomocą 3 punktów CGPoints

W mojej aplikacji użytkownik naciska 3 razy, a 3 punkty zostaną dotknięte przez kąt. Doskonale rysuje kąt. Próbuję obliczyć kąt przy drugim dotknięciu, ale myślę, że robię to źle (prawdopodobnie błąd matematyczny). Nie omówiłem tego jeszcze w mojej klasie rachunku różniczkowego, więc wychodzę z formuły na wikipedii.

http://en.wikipedia.org/wiki/Law_of_cosines

Oto, co próbuję:

Uwaga: pierwsze, drugie i trzecie sąCGPoints utworzony w kranu użytkownika.

        CGFloat xDistA = (second.x - third.x);
        CGFloat yDistA = (second.y - third.y);
        CGFloat a = sqrt((xDistA * xDistA) + (yDistA * yDistA));

        CGFloat xDistB = (first.x - third.x);
        CGFloat yDistB = (first.y - third.y);
        CGFloat b = sqrt((xDistB * xDistB) + (yDistB * yDistB));

        CGFloat xDistC = (second.x - first.x);
        CGFloat yDistC = (second.y - first.y);
        CGFloat c = sqrt((xDistC * xDistC) + (yDistC * yDistC));

        CGFloat angle = acos(((a*a)+(b*b)-(c*c))/((2*(a)*(b))));

        NSLog(@"FULL ANGLE IS: %f, ANGLE IS: %.2f",angle, angle);

Czasami daje kąt jako 1, co nie ma dla mnie sensu. Czy ktoś może wyjaśnić, dlaczego tak jest lub jak to naprawić?

questionAnswers(5)

yourAnswerToTheQuestion