Вопрос про TChart. Где про него почитать?

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

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

Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Сообщение Climber »

Timid писал(а):2 Climber

Могу посоветовать только сделать свои компоненты. Но не нужно "заморачиваться" с OpenGL. Используйте векторную отрисовку. Например, в SVG или WMF. Это не сложно, но довольно муторно, если захотите "воспроизвести" TChart'ы полностью.
"Отрисовать" затем все можно через TImage.

Если начнете писать, то могу попробовать присоединиться.

PS. Моя проблема сейчас - "рендер" RTF-форматированного текста в WMF или SVG. Вот это действительно сложно :)

Я уже столько всего пробовал писать, что уже не хочу никому ничего обещать. В данный момент тащу на себе 2 проекта "для души" - программу для домашней бухгалтерии (ей-то и нужны эти диаграммы), и сайт на Oracle APEX.
По поводу OpenGL: это, во-первых, быстро, во-вторых, кроссплатформенно, в-третьих, довольно просто, кода надо минимум, плюс я немного с OpenGL знаком. OpenGL будет выводить и 2d и 3d одинаково легко. Единственное, надо понять, как правильно выводить графику на canvas.
Timid
постоялец
Сообщения: 290
Зарегистрирован: 21.11.2007 20:33:15

Сообщение Timid »

Зато OGL картинку никуда не вставить, только показать на форме.

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

Сообщение Ask »

TAChart уже поддерживает отрисовку в OpenGL, SVG и WMF.
Даже в DXF :-)
Так что ничего воспроизводить не нужно :)
Maxizar
постоялец
Сообщения: 385
Зарегистрирован: 20.03.2010 18:48:14

Сообщение Maxizar »

Timid писал(а):Зато OGL картинку никуда не вставить, только показать на форме.

Не согласен, если рисовать только на форме, то да, геморой с отрисовкой и все такое... Но если OGL рисовать в памяти то все пучком.
Вот скажем, был не доволен как рисует TAChart 2D графики, решил написать аля Маткад, вот скажем результаты:
Изображение

Изображение

Код конечно кривой, писал что бы как то работало :oops:, но зато можно Картиночку в формат (bmp, png, jpg) сохронять, отрисовывается из памяти на Image, что решает проблему перерисовки....
Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Сообщение Climber »

Ask писал(а):TAChart уже поддерживает отрисовку в OpenGL, SVG и WMF.
Даже в DXF :-)
Так что ничего воспроизводить не нужно :)

Я не очень понял, TAChart - это что? Это и есть TChart?
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

TAChart -- это пакет, а TChart -- это в нём главная компонента.
Climber
постоялец
Сообщения: 415
Зарегистрирован: 03.06.2007 20:09:57
Откуда: Москва

Сообщение Climber »

И еще пара вопросов. Как легенду сделать?
У меня есть PieChart с названиями категорий, которые из запроса берутся. Как их вставить в легенду?
Если я кликаю по диаграмме, можно узнать, на какую точку приходится клик? (координаты по осям, кусок из PieChart и т. д.)
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

Climber писал(а):Как легенду сделать?


См. legenddemo

Если я кликаю по диаграмме, можно узнать, на какую точку приходится клик? (координаты по осям, кусок из PieChart и т. д.)


Координаты по осям -- Series.GraphToAxisX(Chart.ImageToGraphX(X)), аналогично Y.

Кусок из PieChart -- см. radialdemo, закладка "Pie"
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

dunin писал(а):
Ask писал(а):...
Метки нужны именно внутри?

Кстати, метки внутри не помешали бы.


Сделал. См. radialdemo начиная с r30574
Аватара пользователя
dunin
энтузиаст
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и
Контактная информация:

Сообщение dunin »

Ask писал(а):...
Сделал. См. radialdemo начиная с r30574

Спасибо. :)
Ответить