laimas, хочу извиниться за прошлые коментарии, сейчас смотрю это было глупо с моей стороны. Спасибо за участие.
|
Brook,
на всякий случай [JS run][/JS] |
рони,
спасибо - не знал |
Цитата:
А вот результат мне не нравится, много что-то. Сейчас немного некогда, чуть позже надо подумать. Я правильно понял, что размерность среза может быть произвольной, то есть в размерности например 6х6 можно взять 4х4 и плюс оставшиеся? |
Цитата:
|
Цитата:
Изначально задумывал сделать нарезку массива (в моем случае режу поверхность в 2d на ячейки) на более мелкие, надо чтобы на срезах ячейки были сшиты: Дан массив(порехность) 5х5, хочу нарезать ее с шагом 2, в результате получу 4 массива по 3х3 (индексация шагов с 0) Массив: Код:
00 | 01 | 02 | 03 | 04 Код:
00 | 01 | 02 | 03 | 04 М1: Код:
00 | 01 | 02 Код:
02 | 03 | 04 Код:
10 | 11 | 12 Код:
12 | 13 | 14 Сейчас же пытаюсь написать триангуляция для иррегулярной сетки (сразу Делоне подходит), алгортим должен использовать набор из 4х правил по увеличению числа точек на поверхности. |
Цитата:
|
да, но я не вижу никаких проблем и с остатком, просто если до края меньше шага меняем размер шага на расстояние до края в вашем примере 6х6, первый 4х4 после изменения 2х2, единственная трудность это высчитывать начала этого самого края ... но все равно не думаю что решение займет много времени)
сейчас как уже писал выше делаю триангуляцию .. пока что только начал так что как таковых результатов нет - но если интересно могу сбросит задачу на рассмотрения так сказать) |
Цитата:
|
И снова поднимаю эту тему.
Однако в этот раз задача состоит в том чтобы преобразовывать одномерный массив в "сектора" с использованием лишь одного цинкла (и никакой рекурсии так это тоже будет считься как дополнительный цикл ). Оригинальный массив ( 1D !!! ): 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 Теперь визуально предсталю как 2D что бы было проще вам понять, а мне объяснять: Код:
00 | 01 | 02 | 03 | 04 Код:
00 | 01 | 02 | 03 | 04 М1: Код:
00 | 01 | 02 Код:
02 | 03 | 04 Код:
10 | 11 | 12 Код:
12 | 13 | 14 Выходные массивы также представлены как двумерные, однако по сущности являются одномерными! Однако, как уже писал выше, в этот раз есть Вот способ которым пытаюсь это сделать я: Как было сказано ранее граница среза ракна 5, тоесть каждый пятый элемент указывающий на "окончание" одной сроки и начала другой Код:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 Код:
[ 00 | 01 | 02 ], [ 02 | 03 | 04 ] Приблизительно вот так должжен быть нарезан весь массив, повторюсь это одномерныймассив, и выходные массивы также имеют только один разряд (одномерны)! Здесь предсавлен пример конечного результата, прошлого решения: http://jsbin.com/qimaliy/edit?js,console З.Ы. чуть позже выложу результ своих попыток, я забыл их сохранить так что сейчас занимаюсь их востановлением :write: . З.З.Ы. причина по которой снова поднял тему - скорость работы алгоритма - в конце буду все тетстировать на массиве размером от 4 000 000 )), на данный момент предыдущий алгоритм установил планку в 2сек. так что этот должен быть как мимнимум в 2-е быстрее ( <= ~1sec. ) Надеюсь на Вашу помощь, и надесь Вам будет также интресно это решать как и мне )) Заранее спасибо |
Часовой пояс GMT +3, время: 06:22. |