Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как сделать pie chart с изменяемыми секторами ? (http://www.flasher.ru/forum/showthread.php?t=138491)

rukez 09.04.2010 05:58

Как сделать pie chart с изменяемыми секторами ?
 
Цель - создание компонента, в котором удобно выбирать процентное соотношение нескольких параметров, путом графического изменения размера секторов на обычной круглой диаграмме
Такой компонент например реализован вот тут: http://www.tk.mts.ru/sz (круглые диаграммы, которые по нажатию становятся большими и редактируемыми)
Вопрос - как это делается ?
Меня хватило на то что-бы взять обычный pie chart, повесить свой item renderer в котором добавляется отрисованная кнопка на стыке секторов
Как сделать чтоб её перемещение в пространстве осуществлялось по кругу, и как поудобнее привязать изменение данных ?
Пробовал отслеживать изменения положения курсора при mouse down и в зависимости от разницы с начальным значением, изменять данные в датапровайдере диаграммы, но получается очень неудобно :away:
Может кто уже делал такое и подскажет как попроще и покрасивше реализовать такую задачу ?

fljot 09.04.2010 11:15

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

rukez 09.04.2010 17:48

да, спасибо, вчера после 8ми часов мучения :wacko: пришло озарение, можно для облегчения жизни попутно наложить кнопку длинною с радиус плюшки и вращать её от центра плюшки по курсору, попутно изменяя данные в датапрове - ключем было именно вращение кнопки - очень сильно экономит время и не надо писать собственный обработчик драга :)


Часовой пояс GMT +4, время: 00:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.