15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


CGraph - Графические классы для построения графиков и гистограмм

Автор: Brian Convery.

Встречающиеся классы для построения гистограмм давольно примитивны и не заслуживают особого внимания. Уставший от поисков, я решил, что пришло время самому их разработать. Конечно, это выглядит как изобретение колеса, но если это колесо стоит 800$, то наверное самое время изобрести его заново ? :)

Итак, моя версия примера построения графиков : CGraph

Для демонстрации возможностей я добавил в пример меню, с помощью которого можно выбрать 3 различных типа графиков, нарисованных с помощью класса CGraph и вспомогательных классов (CGraphLegend, CGraphSeries).

Гистограмма :

Sample Image

Линейный график :

Sample Image

Круговые диаграммы :

Sample Image

Некоторым нравится помещать графики в диалог :):

Sample Image

Нововведения, для печати - возможность превью :

Sample Image

Так же можно распечатывать линейные и круговые диаграммы.

Использование

Для использования классов, включите их в ваш проект и добавьте  "#include..." в начало каждого файла, использующего эти классы. Для построения приложения следуйте шагам :

1.  Создайте графический объект. Можно сразу задать параметры графика.
2.  Установите тип диаграммы (если не сделали этого на первом шаге).
      0 - Гистограмма(по умолчанию)
      1 - линейная диаграмма
      2 - круговая диаграмма
3.  Создайте легенду объекта.  Для этого используйте функцию SetLegend в CGraph чтобы
       добавить его в график.
4.  Создайте группу данных.  Для этого используйте функцию AddSeries в CGraph,
       чтобы добавить её в график.
5.  Выполните Invalidate ... это заставит функцию OnDraw выполниться.
6.  В функции OnDraw , добавьте graph->DrawGraph(pDC); чтобы нарисовать график.

Downloads

Скачать демку - 151 Kb
Скачать классы CGraph, CGraphLegend, и CGraphSeries - 118 Kb (включая Хелп на английском :))
Хелп HTML - (ссылка ведёт на сайт msdn.microsoft.com)
Если вы пользуетесь Visual C++ 6.0 , то скорее всего эти классы у Вас уже проинсталлированы.