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