я могу получить позицию (точку) на краю круга.
Как сделать тоже самое, но наоборот? Зная позицию на краю круга и точку (центр круга) нужно получить угол.
Тут я накидал пример
var centerPos = Vector2.zero;
var radius = 5f;
var angle = 60f;
var angleRad = angle * Mathf.Deg2Rad;
var targetPos = new Vector2(radius * Mathf.Sin(angleRad) + centerPos.x, radius * Mathf.Cos(angleRad) + centerPos.y);
var backAngle = Mathf.Atan2(targetPos.y - centerPos.y, targetPos.x - centerPos.x) * Mathf.Rad2Deg;
var backAngle2 = Mathf.Atan2(centerPos.y - targetPos.y, centerPos.x - targetPos.x) * Mathf.Rad2Deg;
Конкретно в данном примере я пытаюсь сначала получить позицию, а потом обратно получить первоначльный угол, и у меня не получается.
В первом случае выдается 29.99999, во втором -150, хотя начальный угол был 60.
Как мне получить первоначальнывй угол?
x = radius*cos(a) + x0 y = radius*sin(a) + y0
Обсуждают сегодня