Сап кодач, нужна помощь с алгоритмом.Есть скрипт, создающий поле из 12х12 ячеек (пик 1). Надо сделать так, чтобы чем ближе ячейка к центру, тем она меньше.Вот этот скрипт: http://sweetest.do.am/tiles_1.html(не стал в вебач, т.к. дело в алгоритме, js тут ни при чём)Если схематично описать, создаёт он ячейки так:>for i=0..11; j=0..11:> width = tileWidth;> height = tileHeight;> top = tileHeight i;> left = tileHeight j;Было решено сначала определить глубину ячейки (пик 2) такой функцией (тоже схематично):>function Q(i, j)>lvl = min( i, j, 11 - i, 11 - j );>return [ 1.6, 1.4, 1.2, 0.8, 0.6, 0.4 ][lvl]Таким образом, для крайних ячеек множитель размера будет 1.6, а для четырёх центральных - 0.4Чтобы посчитать координаты ячейки, складываем множители идущих перед ней ячеек, типа:>// r - координата i либо j. В случае с i складываем множители по высоте, в случае с j - по ширине>function S(r)>s = 0>for i=0..r:> t = i < 6 ? i : r - i - 1;> s += [ 1.6, 1.4, 1.2, 0.8, 0.6, 0.4 ][t];> return s;На 3 пике - вычисленные координаты по этой формуле. Меняю код для создания ячеек:>for i=0..11; j=0..11:> width = tileWidth Q(i, j);> height = tileHeight Q(i, j);> top = tileHeight S(i);> left = tileHeight S(j);Но получается то, что на 4-ом пике. http://sweetest.do.am/tiles_2.htmlАнон помоги понять где я обосрался в расчётах
бля, макаба звёздочки жрёт
Попробуй сначала на бумажке нарисовать что ты хочешь чтобы получилось.
>>930965Нету бумажки
>>930967А вайтбоард?
>>930972Даже не знаю что это
>>930949 (OP)Можно в каждой ячейке вместе или вместо координат вывести рассчитанные размеры - будет легче понять, что и как. Это быстрее, чем искать ошибку в алгоритме
>>930949 (OP)У тебя ячейки разных размероввысота по рядам:1) 722) 135-72 = 723) 189-135=444) 225-189=445) 251-225=26...ширина по рядам1) 802) 150-80=703) 210-150=60...
>>931212Так и задумано, блять
>>930949 (OP)на собеседование чтоли не просили заполнить матрицу по спирали заполнять, как ты вообще вкатился?
Почему еще никто не пояснил опу в чем он довнила?