powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поиск свободной нычки.
8 сообщений из 58, страница 3 из 3
Поиск свободной нычки.
    #36896337
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rt123> После 10 нычки из будет уже много... устану делить и выделять..

Я понял буквально, что будет только 5 штук5 штук было условно в первом посте и интереса не представляют (любой алгоритм отработает мгновенно, кроме случайного при условии совсем плотного размещения). Обсуждается N.
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36896716
rt123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте в терминах задачи на моей ссылке.

Есть стена W*H. На ней висят N картин разных размеров wi*hi
Надо попытаться найти место для (N+1)-й картины, размером A*B.
Вращать картину на 90гр. нельзя.

Я бы делал так (позже попробую накодить):

1.
Сортирую все картины по X.

2.
В цикле по всем картинам, для текущей картины i иду по картинам, висящим правее ее,
пока не встречу первую картину j с Х ее левой стороны такую, что X_left[j] - X_right[i] >= A
т.е. по Х повесить новую картину можно.

3.
Теперь осталось проверить: можно ли повесить новую картину (А*В) по Y ?
Скажем, мы проверяем картины №5 и №11. Сортируем картины №№6,7,8,9,10 по Y.
И смотрим: влазит ли новая картина по Y своей высотой В среди этих 5 промежуточных картин?
(есно, это элементарный одномерный случай)

Если влазит - место для новой картины найдено. Full Stop. Если нет:
бросаем картину №5 и идем дальше по нашему циклу и проверяем картину №6 и т.д.
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36896748
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я отстал от обуждения. А разве картины - это удачная аналогия к постановке? Ведь картины обычно вешают без "перекрытий". А у ТС была возможность кидать прямоугольники внахлёст.
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36896942
rt123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А у ТС была возможность кидать прямоугольники внахлёст.

Хм... разве? Правда, я основном пейсатель :)
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36896950
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА разве картины - это удачная аналогия к постановке? Ведь картины обычно вешают без "перекрытий". А у ТС была возможность кидать прямоугольники внахлёст.Это не критично. Два прямоугольника внахлест = три прямоугольника рядом. Конечно, если прямоугольники могут быть разного размера...
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36897098
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разница, думаю будет в статистике индекса по точкам. В режиме нахлёста мы можем получить эффект поглощения одник прямоугольников другими. Эдакая само-оптимизация. Для "картинной галлереи", наверное будет по другому.
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36897850
rt123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VolochkovaПрямоугольники строго идут параллельно осям координат.
Никаких там под углом и т.д.

Блин, неужели так все сложно...
Размеры прямоугольников всегда одинаковые.
Допустимо касание прямоугольников.

хоть в цикле идти со смещением и перебором искать область.
не, mayton, нахлесты, видимо, все-таки запрещены
...
Рейтинг: 0 / 0
Поиск свободной нычки.
    #36898376
Volochkova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rt123Давайте в терминах задачи на моей ссылке.

Есть стена W*H. На ней висят N картин разных размеров wi*hi
Надо попытаться найти место для (N+1)-й картины, размером A*B.
Вращать картину на 90гр. нельзя.

Я бы делал так (позже попробую накодить):

1.
Сортирую все картины по X.

2.
В цикле по всем картинам, для текущей картины i иду по картинам, висящим правее ее,
пока не встречу первую картину j с Х ее левой стороны такую, что X_left[j] - X_right[i] >= A
т.е. по Х повесить новую картину можно.

3.
Теперь осталось проверить: можно ли повесить новую картину (А*В) по Y ?
Скажем, мы проверяем картины №5 и №11. Сортируем картины №№6,7,8,9,10 по Y.
И смотрим: влазит ли новая картина по Y своей высотой В среди этих 5 промежуточных картин?
(есно, это элементарный одномерный случай)

Если влазит - место для новой картины найдено. Full Stop. Если нет:
бросаем картину №5 и идем дальше по нашему циклу и проверяем картину №6 и т.д.

(N+1)-ая тех же размеров - wi*hi.

Теоретически могут и в нахлест, но пока берем что они только касаются. И перекрытий нельзя.
У меня есть пока только одна идея.. стену делим на сектора (wi*hi) и смотрим входит ли в этот сектор другая "картина"? Если нет то кидаем картину иначе к следующему сектору.
...
Рейтинг: 0 / 0
8 сообщений из 58, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Поиск свободной нычки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]