Нужен алгоритм объединения vector<rect> |
Здравствуйте, гость ( Вход | Регистрация )
Нужен алгоритм объединения vector<rect> |
SandySandy |
25.9.2010, 10:50
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 14.5.2010 Пользователь №: 1714 Спасибо сказали: 0 раз(а) Репутация: 0 |
есть много rect в массиве, это области для обновления, отрисовка на КПК медленная, и естественно хочется выкинуть лишнее.
на какие алгоритмы стоит обратить внимание? |
|
|
kwisp |
25.9.2010, 10:59
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
SandySandy,
требуется уточнение - что собрался выбрасывать, что лишнее? тема вообще называется "Нужен алгоритм объединения vector<rect>" если по теме и vector это std::vector то методов куча от алгоритма merge до методов insert append и проч... если по вопросу про "лишнее" - не понятно. |
|
|
Iron Bug |
26.9.2010, 22:02
Сообщение
#3
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
очевидно, имелось в виду объединение прямоугольников в одну общую площадь (точнее, их может быть и несколько), с отбрасыванием "перекрывающихся" прямоугольников.
в голове вертится книга, где про это было подробно написано, но вспомнить название не могу, так как читала я её ещё во времена студенчества. |
|
|
kwisp |
26.9.2010, 23:12
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
Iron Bug,
как ты проницательна - ни за что бы по посту не догадался что имеется ввиду. по-моему, могу ошибаться, даже на форуме было что-то подобное |
|
|
SandySandy |
30.9.2010, 13:37
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 14.5.2010 Пользователь №: 1714 Спасибо сказали: 0 раз(а) Репутация: 0 |
да вы правы, нужно объединение прямоугольников в минимально возможное по количеству не перекрывающихся прямоугольников
|
|
|
SandySandy |
1.10.2010, 10:03
Сообщение
#6
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 14.5.2010 Пользователь №: 1714 Спасибо сказали: 0 раз(а) Репутация: 0 |
да вы правы, нужно объединение прямоугольников в минимально возможное по количеству не перекрывающихся прямоугольников пока придумал вот такую "грубую" реализацию, разбиваю экран на области например 4х4, создаю bitset например для экрана 320х240 будет 4800 областей, далее цикл по входному вектору с установкой битов, и на основании результатов bitset генерируется новый vector<rect>. |
|
|
Алексей1153 |
1.10.2010, 10:09
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
создаю bitset например для экрана 320х240 будет 4800 областей, лучше тогда bitset<4*4> и создавать - зачем столько озу в КПК съедать ? Границы областей известны - экран, разбитый на 4 части по горизонтали и вертикали. Твоё решение, кстати, даже побыстрее будет, чем крутой алгоритм объединения прямоугольников ) Только не 4*4, а помельче, наверное, надо. Это - определить экспериментально |
|
|
Текстовая версия | Сейчас: 15.1.2025, 13:33 |