Вы, кажется, просите здесь несколько разных вещей, поэтому я посмотрю, смогу ли я охватить все основы.
1) Если вы ищете угол между двумя точками (с одной и той же начальной / центральной точкой), не имеет значения, в каком направлении находится точка 0/90/180/270, если они согласованы. Угол будет одинаковым независимо от ориентации.
2) Если вы ищете угол точки E в точке (ex, ey) с началом в точке (cx, cy) и 0 градусами, направленными вниз и увеличивающимися против часовой стрелки (как вы просили), то вы можете использовать формула в этот ответ , чтобы получить угол на основе 0 градусов = 3 часа. Затем добавьте 90 градусов, чтобы получить окончательный результат. (При необходимости вычтите 360).
3) Вы можете использовать шаги из # 2, чтобы вычислить угол для двух разных точек, затем вычесть одну из другой, чтобы получить угол между ними.
getAngleBetweenAAndB(Point A, Point B){
return abs(getAngle(A) - getAngle(B));
}