Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пересечение надписей на Pie Chart 
:(
    Опции темы
Therion
Дата 7.9.2012, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 21.12.2003

Репутация: нет
Всего: нет



Доброго время суток. 
Не получается оптимально распределить метки на PieChart для небольших сегментов без пересечений. Если кто сталкивался с проблемой - поделитесь алгоритмом.

user posted image

Заранее благодарен за помощь.
PM MAIL   Вверх
skyboy
Дата 7.9.2012, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



в общем виде — никак.
в смысле, будет место — можно разбросать подписи выше-ниже. 
можно сделать так, что при наведении на сектор, соответствующая лейба будет "вспылвать" поверх остальных
PM MAIL   Вверх
_Y_
Дата 7.9.2012, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Можно попробовать как-то так. Сначала рисуем подпись соответвтвующую некому среднерасположенному сектору. Потом соседнюю. Проверяем пересекаются ли. Если да - сдвигаем до непересечения. Потом следующую. И так далее.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
nucer
Дата 2.11.2012, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 21.6.2004
Где: Москва

Репутация: нет
Всего: 0



Конкретно для данного случая - совсем несложно...
Вариант 1.
1. Находим сумму высот всех надписей.
2. Выравниваем по вертикали (вероятнее всего, центрируем) блок с надписями относительно нижней и верхней y-координат "кусочков" пая.
3. Последовательно сверху-вниз добавляем надписи.

Вариант2 .
1. При добавлении надписи сохраняем её координаты и размер.
2. При добавлении следующей - проверяем на пересечение с предыдущей.
3. Если пересекаются, то подвигаем текущую надпись, либо вниз, либо вправо.


Для общего случая думаю тоже можно найти решение, но вначале нужно понимать куда пойдут надписи, например, для кусочков, которые находятся снизу или сверху пирога. Вариантов действительно много.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.