|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
1. Он знает начальную и конечную координаты клеток
2. Ему нужно вернуть массив клеток входящ в прямоугольник, диоганаль которого проходит по этим клеткам. 3. Двумерного и вообще никакого массива у него нет. Днём лень было писать: Последний раз редактировалось miramax; 18.09.2006 в 23:24. |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Вот 12 клеток в сетке и я могу их разместить 6-ю разными способами (указал 4). Указывая одни и теже координаты (возможные конечно), я буду получать разные числа выделения.
[ 1][ 2][ 3][ 4][ 5][ 6][ 7][ 8][ 9][10][11][12] [ 1][ 2][ 3][ 4][ 5][ 6] [ 7][ 8][ 9][10][11][12] [ 1][ 2][ 3][ 4] [ 5][ 6][ 7][ 8] [ 9][10][11][12] [ 1][ 2][ 3] [ 4][ 5][ 6] [ 7][ 8][ 9] [10][11][12] ... |
|
|||||
Цитата:
W - Я имел ввиду количество клеток в ряду, строчке. А сколько всего клеток в сетке не важно и не нужно. |
|
|||||
2iNils: Рассказываю, что имеется и что нужно получить ,как можно более понятно. Есть игровое поле с ячейками, произвольного размера. Все ячейки пронумерованы целыми числами от 1 до (размер поля в ячейках по горизонтали)*(размер поля в ячейках по вертикали). Именно так как в твоем примере про 12 клеток, все предложенные тобой варанты возможны. Мы знаем любые параметры поля: размер его ячеек, размер самого и т.п.
Имеется прямоугольная область (знаем все её параметры: координаты левого верхнего угла, длину и высоту). Задача получить массив номеров ячеек, которое перекрывает эта область. p.s. Все объекты это данные визуального представления они не имеют поэтому hitTest не подходит. 2maxmara: есть просто массив всех ячеек, кто тебе сказал что вообще никакого массива нет? Нет массива двумерного. Твой код забивает массив координатами (а речь идет о номерах ячейках) - если тебе, как ты говоришь "лень писать" - то не пиши вообще такого кода. Спасибо за помощь. 2silin: Спасибо, сейчас подумаю попробую. Последний раз редактировалось Sneg; 19.09.2006 в 00:30. |
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Цитата:
|
|
|||||
Туплю уже страшно - пора домой, утром разберусь с кодом - спасибо всем за ответы.
|
|
|||||
Чуть-чуть подкоректировал код - все работает как нужно. Вот только на полях больше чем 100x100 при выделении большой области. Flash при таком алгоритме очень долго обрабатывает данные :-(
2miramax: твой код был абсолютно верным, но из-за стиля написания и "while" мой мозг категорически отказывался его понимать. Спасибо, прошу прощения за не дружелюбный тон. 2iNils: отдельная благодарность :-) Последний раз редактировалось Sneg; 20.09.2006 в 20:13. |
|
|||||
Регистрация: Oct 2004
Сообщений: 141
|
Чтобы не возникало проблем при построении тайлов надо иметь две координатных сетки:
1. Реальная 2. Тайловая и метод перехода от одной к другой. Допустим все тайла имеют атрибуты xx и yy , где xx - порядковый номер по иксу а yy порядковый номер по y. Имена тоже удобней строить из этой концепции например ["tile_"+xx+"_"+yy] будет легче обращятся на прямую. Тогда если нам известен левый ферхний тайл выделения tile1 и нижний правй тайл выделения tile2 имеем простейшую систему перебора: |
|
|||||
Конечно удобнее, но к сожалению интерфейс ячейки сетки и самой сетки не предоставляет такой возможности, поэтому приходится делать несколько иным способом.
|
Часовой пояс GMT +4, время: 08:52. |
|
« Предыдущая тема | Следующая тема » |
|
|