Доброго всем времени!
Стас (stani) Хорошо описали метод расчета.
Позвольте только несколько уточнений сделать. Возможно, что-то упростить, а что-то дать для размышлений.
Число Х (Возьмем 157 как и у Вас в примере).
1. А = корень из Х = 12.53
2. В = (А - 1) / 2 = (12.53 - 1) / 2 = 5.765. Получаем цикл Квадрата. Целое число!
Четные квадраты будут давать значения "цикл-0.5", нечетные квадраты будут давать номер цикла в чистом виде. Например, 144. А = 12, В = 5.5. Завершение цикла на 169. А = 13, В = 6. Т.е. В = 6 (номер цикла)
Вы верно отметили, что уверенной базой для дальнейших расчетов являются нечетные квадраты, расположенные на 315 градусах. Самое простое, конечно, взять ближайшее меньшее нечетное число к А, т.е. корню нашего числа. Либо пройтись чуть дальше и посмотреть на треугольные числа (ссылку давал ранее):
3. С = (В -1) * В * 4 + 1. Нечетный квадрат, заканчивающий предыдущий цикл. Пример, (6 - 1) * 6 * 4 + 1 = 121.
4. D = В * 8. Количество ячеек в рассматриваемом цикле. D = 6 * 8 = 48.
5. Е = (Х - С) * 360 / D. Отклонение от 315 градусов. Е = (157 - 121) * 360 / 48 = 270.
6. 315 + Е mod 360 - получаем градус числа. 315 + 270 = 585. По модулю 360 = 225.
Логика расчетов в чистом виде.
Теперь смотрим внимательно... Можем сразу сократить одно действие в этом ряду. Получим частично, что написали Вы.
5. Е = (Х - С) * 45 / В. Таким образом, 4 пункт нам уже не нужен.
При желании и пытливости можно свести весь расчет с 5 до 2-3 шагов.
----------------------------------------------------------------------------------
А теперь действительно крайне востребованное уточнение.
Споры по поводу градусов, получаемых через расчеты и видимых на графическом Квадрате Девяти, возникают с определенной периодичностью. Либо расхождения вызывают недоумение у новичков. Поэтому вижу смысл сделать соответствующие разъяснения.
В представленном выше алгоритме мы исходим из того, что все ячейки в одном цикле равномерно распределены по кругу. Однако, геометрически это не так! Числа, расположенные ближе к кардинальному кресту "занимают" больше градусов. И по мере приближения к диагональному кресту количество градусов на ячейку падает. Для примера рассмотрим 5-й цикл. Он включает 40 ячеек, каждой из которых в математических расчетах мы отдадим по 9 градусов ( 360 / 40 = 9). То есть, число 87 расчетно будет находиться на 9 градусах, а число 90 на 36 градусах. В то же время, если мы рассмотрим геометрическое положение центров этих ячеек, то получим для 87 значение в 11.3 градуса, а для 90 - 38.7! Мы видим, что для точного смещения от 86 до 87 нужно на 2.3 градуса больше, а от 90 до 91 потребуется на 2.7 градуса меньше!
Есть над чем подумать? Конечно же есть!
Но обращу внимание на тот факт, что если нам понадобятся числа на оверлеях, мы получим одинаковые значения в обоих случаях.
Настаивать на "правильности" того или иного подхода не вижу абсолютно никакого смысла. Для участников форума в связи с этим предлагаю дополненную версию утилиты с возможностью получать результаты расчетов в двух вариантах.
Приятного юзверьства!
с уважением,
Сергей