Скажем, у меня есть прямоугольник (R) и внутри указанного прямоугольника, у меня есть две точки, A и B. Мне нужно повернуть прямоугольник вокруг центральной точки (C) до точки A и B имеют равные y координаты. Поскольку решение этого вопроса могло бы дать два отдельных ответа (где Ax - < Bx, а где Ax> Bx), я хотел бы ограничить это, чтобы разрешить решение, где Ax < Bx.Поверните прямоугольник до тех пор, пока две точки не будут иметь одинаковые координаты y
Моим решением является решение для тета при вращении вокруг M (средняя точка между A и B), а затем для поворота вокруг C по тете (ниже).
Будет ли это работать во всех случаях/является ли это оптимальным? Заранее спасибо!
CGPoint m = CGPointMake(a.x/2 + b.x/2, a.y/2 + b.y/2);
float dx = m.x - a.x;
float dy = m.y - a.y;
float radians = -atan2f(dy, dx)
Очень удобно размещать свой код. Доверьтесь мне! – Olaf
Угол, который вам нужно вращать, тот же, независимо от того, в какой точке вы его вращаете. – caf
caf5 - Я считаю, что вы правы. Я отправлю свой код, как только вернусь к моему компьютеру. – eurekabeacon