C++ класс для построения 2D графиков под Windows
У меня есть консольное расчетное приложение на C++ под Windows (VS 2005), которому нужны перерисовывать набор 2d графиков. Вот под такой интерфейс
#include "vector"
using namespace std;
/**
* Класс отрисовки графика с одной серией, знающий где он расположен
*/
class Chart {
public:
void Plot(double x[], double y[], int n, char *title) {}
};
class ChartBuilder {
public:
/**
* nCharts - общее число графиков
* nCols - число графиков в строке
*/
ChartBuilder(int nCharts, int nCols) {
charts_.resize(nCharts);
//инициализация расположения графиков с учетом nCols
//...
}
Chart *Item(int at) {
return &charts_[at];
}
private:
std::vector charts_;
};
void main()
{
//2 строки по 2 графика
ChartBuilder cb(4, 2);
enum {n = 3};
double x[n] = {1, 2, 3};
double y[n] = {1, 4, 9};
cb.Item(0)->Plot(x, y, n, "Chart#1");
}
класс должен генерировать MDI окно вроде этого http://code.google.com/p/graphin/. Никаких кнопок в окне не требуется - просто контейнер с графиками, которые можно перерисовать из консольной программы.
Реализация (GDI, OpenGL, DirectX). Я хочу работать с классом, который всю графику инкапсулирует внутри.
PS: устроит готовая реализация (например http://code.google.com/p/graphin/ или http://www.antigrain.com/ - чем проще, тем лучше).
Срок 2 дня. Возможна дальнейшая поддержка.