Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Круговая диаграмма – как залить полуокружности?

14K
20 июня 2007 года
Mr. White
25 / / 17.09.2006
Мне нужно реализовать динамическую круговую диаграмму. У меня все получилось, кроме одного – как ее закрасить? Дело в том, что функция AngleArc, которой я рисую полуокружности, не использует кисть, т.е. она не закрашивается. Я пробовал, как вариант, использовать функцию FloodFill, но она имеет существенный недостаток – ей нужно передать точку, с позиции которой начнется заливка. А это означает, что она не обновляет область заливки! Как пример этого идиотизма: стоит другому окну появиться поверх диаграммы и не попасть на ту точку, с которой начинается заливка, то рисунок не будет обновлен, будет зиять неприятная пропасть (это же касается и той ситуации, когда окно прячется чуть-чуть за областью видимости, а точки заливки, разумеется, не достигает, т.е. функция, вероятно, считает, что обновлять нечего, если не достигли точки)! Я понимаю, что ситуация несколько идиотичная, наверное существует какие-то способы реализации. Вот меня они интересует. (Можно ли как-то заставить функцию Arc использовать кисть? Есть ли какая-то альтернатива функции FloodFill, которая будет обновлять всю область закраски, а не только от указанной точки? Как вообще рисуют круговую диаграмму в таких случаях, когда все посчитано, но не получается залить цветом?)

Буду очень благодарен за помощь. Это один из тех случаев, когда работу нужно было сдавать еще вчера, так что я несколько нервничаю.
4
20 июня 2007 года
mike
3.7K / / 01.10.2002
Обычно для этого используют функции типа AngleFilledArc (не уверн что такая есть, но что-то похожее должно быть)
14K
20 июня 2007 года
Mr. White
25 / / 17.09.2006
Нету! :((
(какой забавный фиолетовый смайл! инопланетный гость)
1.8K
21 июня 2007 года
k3Eahn
365 / / 19.12.2005
Ну заверни тогда диаграмму в path (BeginPath, EndPath) и используй для заливки соответствующие ей функции (FillPath).
14K
21 июня 2007 года
Mr. White
25 / / 17.09.2006
Спасибо большое!
Получилось :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог