Компонент для отображения круговой 3-х мерной диаграммы

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Компонент для отображения круговой 3-х мерной диаграммы

Сообщение alexkam »

Подскажите компонент для отображения круговой 3-х мерной диаграммы?
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

alexkam писал(а):Подскажите компонент для отображения круговой 3-х мерной диаграммы?

Можно попробовать TAChart начиная с ревизии 35624.
Поддержка пока неполная, но в простейших случаях работает.
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

А где там 3d круговая диаграмма?
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

Как и с остальными видами диаграмм -- нужно указать ненулевое значение свойства Depth.
Обращаю внимание, что фичу Я добавил вот только что, соответственно получить её можно либо из svn,
либо завтра из snapshot.
Демку добавлю завтра -- сегодня уже спать пора :)
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Ask писал(а):Как и с остальными видами диаграмм -- нужно указать ненулевое значение свойства Depth.
Обращаю внимание, что фичу Я добавил вот только что, соответственно получить её можно либо из svn,
либо завтра из snapshot.
Демку добавлю завтра -- сегодня уже спать пора


Спасибо, получилось.
Теперь вопрос как изменить цвет линии отрисовки и сгладить изображение?
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

alexkam писал(а):Теперь вопрос как изменить цвет линии отрисовки

Пока никак, но это тривиально добавить -- нужен одинаковый цвет для всех линий, правильно?

alexkam писал(а):и сгладить изображение?

С этим посложнее. Вообще сглаживание включается свойством Chart.AntialiasingMode:=amOn
Однако сам TAChart ничего не сглаживает, а только устанавливает параметры отрисовки.
К сожалению, в большинстве wingetset'ов LCL сглаживание не работает, в том числе на Win32.
Работает, например, под Qt -- даже на Windows.

В качестве обходного маневра можно использовать специализированные библиотеки для
рисования TAChart (см. http://wiki.lazarus.freepascal.org/TAChart_documentation#Drawers)
Если Я правльно помню, на данный момент сглаживание работает в AggPas, BGRABitmap и OpenGL.

Из них наиболее перспективный -- BGRABitmap, поскольку библиотека активно развивается.
alexkam
постоялец
Сообщения: 152
Зарегистрирован: 07.09.2009 20:03:59

Сообщение alexkam »

Ask писал(а):Пока никак, но это тривиально добавить -- нужен одинаковый цвет для всех линий, правильно?

Да, именно так.

Добавлено спустя 53 минуты 2 секунды:
Взял пример lazaruscomponentstachartdemobgra который использует библиотеку BGRABitmap. Установил свойство Chart.AntialiasingMode:=amDontCare
Получилось!!! Еще бы цвет линии поменять.

Добавлено спустя 10 минут 59 секунд:
Взял пример lazarus\components\tachart\demo\bgra который использует библиотеку BGRABitmap. Установил свойство Chart.AntialiasingMode:=amDontCare
Получилось!!! Еще бы цвет линии поменять.
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

alexkam писал(а):Еще бы цвет линии поменять.


См. свойство PieSeries.EdgePen начиная с ревизии 35639
Ответить