Я пытаюсь написать алгоритм, который вращает один квадрат вокруг своего центра в 2D, пока он не совпадет или не окажется "достаточно близко" к повернутому квадрату, который начинается в той же позиции, имеет тот же размер и тот же центр.Что довольно легко.
Однако углы квадрата должны совпадать, поэтому, чтобы получить совпадение, верхний правый угол квадрата, который нужно повернуть, должен быть достаточно близко к тому, который изначально был верхним правым угломповернутый квадрат.
Я пытаюсь сделать это как можно более эффективным, поэтому, если близость двух квадратов, основанных на вышеуказанных критериях, ухудшается, я знаю, что мне нужно попытаться повернуть назад в противоположном направлении.
Я уже написал методы для поворота квадратов и проверки, насколько они близки друг к другу
Моя главная проблема заключается в том, как мне изменить величину вращения на каждой итерации в зависимости от того, какзакрыть Я получаю
Например, если текущее измерение ближе, чем предыдущее, уменьшите угол вдвое и продолжайте в том же направлении, в противном случае удвойте угол и поверните в противоположном направлении?
Однако я не думаю, что это довольно плохое решение с точки зрения эффективности.
Любые идеи будут высоко оценены.