2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Алгоритмы размещения данных на экране
Сообщение06.12.2011, 14:29 


06/12/11
2
Требутся помощь в поиске оптимальных алгоритмов для оптимизации размещения информации на экране. Имеется набор значков с подписями, при пересечении или наложении значков друг на друга их подписи не должны пересекаться, распологаясь в незанятой области рядом со своим значком. В случае если свободных областей не имеется, разрешается наложение подписей.

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение11.12.2011, 17:27 
Заслуженный участник


26/07/09
1559
Алматы
Ну поищите алгоритмы детектирования столкновений из игровой физики. Т.е. я имею ввиду, что габаритные контейнеры надписей можно рассматривать как твердые "кирпичи", которые могут двигаться, но не могут пройти друг через друга.

Также можно попробовать смоделировать кулоновское отталкивание центров надписей (бросьте в центр каждой надписи по электрону, так, чтобы надписи не могли приблизиться друг к другу).

(в обоих этих случаях также должно учитываться ограничение на расстояние надписи от её значка, например за счет создания эластичной связи.)

Можно и попроще попробовать. Например, если известно, что несколько значков пересекаются и вам нужно расположить надписи рядом со значками, то попробуйте просто размещать надписи вокруг группы пересекающихся значков, крепя эти надписи к точкам, лежащим на продолжении радиус векторов соответсвующих значков в системе координат с началом в геометрическов центре группы. Как-то так... Правдка отдельные такие группы могут конфликтовать друг с другом...

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение11.12.2011, 17:30 
Заслуженный участник


27/04/09
28128
Circiter в сообщении #514333 писал(а):
то попробуйте просто размещать надписи вокруг группы пересекающихся значков, крепя эти надписи к точкам, лежащим на продолжении радиус векторов соответсвующих значков в системе координат с началом в геометрическов центре группы. Как-то так...
Выглядит не очень оптимально. :roll:

-- Вс дек 11, 2011 20:32:38 --

Хотя моя мысль оказалась намного хуже. Ну и против остального ничего не имею.

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение11.12.2011, 17:38 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
Выглядит не очень оптимально.

В смысле? Наоборот, никаких асимптотически квадратичных проверок:
Код:
for(i=0; i<Cluster.Icons.Count(); i++)
{
    Direction=Cluster.Icons[i]-Cluster.Center();
    Position=Direction*(1+Gap/Direction.Length());
    PlaceLabel(i, Position);
}


Цитата:
Хотя моя мысль оказалась намного хуже

Какая ваша мысль? Я не видел вашего сообщения.

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение11.12.2011, 17:56 
Заслуженный участник


27/04/09
28128
Я её потому и не написал, что она уж очень долго формулируется и вообще куда-то не туда.

Circiter в сообщении #514339 писал(а):
Наоборот, никаких асимптотически квадратичных проверок:
Имел в виду, что при некоторых возможных конфигурациях будет нехороший результат, когда можно всё же расположить «красиво». Правда, это надо тех объектов накидать в одной пересекающейся группе немаленькую кучу.

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение12.12.2011, 11:00 


06/12/11
2
Спасибо за ваши мысли. Я думаю применить многоуровневый эволюционно-генетический метод для решения поставленной задачи, с некоторыми доработками. Результаты моей работы постараюсь разместить на данном форуме.

 Профиль  
                  
 
 Re: Алгоритмы размещения данных на экране
Сообщение13.12.2011, 02:19 
Заслуженный участник


26/07/09
1559
Алматы
Как-то не очень стыкуется "многоуровневый эволюционно-генетический" и режим реального времени, который, как мне показалось, подразумевался изначально... Т.е. я почему-то думал, что алгоритм вы планируете применять в GUI вашей программки.

Если же real-time не требуется, то конечно, все средства хороши... Хотя я бы и здесь предпочел Гука-Кулона.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group