[Ответить в тред] Ответить в тред

02/12/16 - Конкурс визуальных новелл доски /ruvn/
15/11/16 - **НОВЫЙ ФУНКЦИОНАЛ** - Стикеры
09/10/16 - Открыта доска /int/ - International, давайте расскажем о ней!

Check this out!


Новые доски: /2d/ - Аниме/Беседка • /wwe/ - WorldWide Wrestling Universe • /ch/ - Чатики и конфочки • /int/ - International • /ruvn/ - Российские визуальные новеллы • /math/ - Математика • Создай свою

[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 10 | 2 | 6
Назад Вниз Каталог Обновить

Сап кодач, нужна помощь с алгоритмом. Есть скрипт, Аноним 11/02/17 Суб 16:25:01  930949  
0.jpg (48Кб, 611x549)
1.jpg (53Кб, 599x539)
2.jpg (219Кб, 598x537)
3.jpg (48Кб, 653x591)
Сап кодач, нужна помощь с алгоритмом.

Есть скрипт, создающий поле из 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
Анон помоги понять где я обосрался в расчётах
Аноним 11/02/17 Суб 16:25:37  930950
бля, макаба звёздочки жрёт
Аноним 11/02/17 Суб 16:46:35  930965
Попробуй сначала на бумажке нарисовать что ты хочешь чтобы получилось.
Аноним 11/02/17 Суб 16:49:28  930967
>>930965
Нету бумажки
Аноним 11/02/17 Суб 16:53:53  930972
>>930967
А вайтбоард?
Аноним 11/02/17 Суб 18:05:37  931046
>>930972
Даже не знаю что это
Аноним 11/02/17 Суб 21:05:46  931205
>>930949 (OP)
Можно в каждой ячейке вместе или вместо координат вывести рассчитанные размеры - будет легче понять, что и как. Это быстрее, чем искать ошибку в алгоритме
Аноним 11/02/17 Суб 21:12:09  931212
>>930949 (OP)
У тебя ячейки разных размеров
высота по рядам:
1) 72
2) 135-72 = 72
3) 189-135=44
4) 225-189=44
5) 251-225=26
...

ширина по рядам
1) 80
2) 150-80=70
3) 210-150=60
...
Аноним 12/02/17 Вск 09:29:03  931410
>>931212
Так и задумано, блять
Аноним 12/02/17 Вск 09:50:59  931416
>>930949 (OP)
на собеседование чтоли не просили заполнить матрицу по спирали заполнять, как ты вообще вкатился?
Аноним 12/02/17 Вск 10:44:33  931433
Почему еще никто не пояснил опу в чем он довнила?

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 10 | 2 | 6
Назад Вверх Каталог Обновить

Топ тредов
Избранное