You are on page 1of 12

PROGRAMAO GRFICA 1

Prof. MSc. Karl Phillip Buhr


Curso: 620 - Engenharia da Computao
Componente Curricular: 20399
Crditos: 4
Fase: 7
Trabalho
(parte 1)
Grfico de Linha
(LineChart)
Nesta parte do trabalho voc deve implementar
um novo widget chamado LineChart para
apresentar um grfico de linha:
Trabalho: Grfico de Linha
Exemplo de utilizao #1:
QVector<QPoint> points;
points.push_back(QPoint(0, 6));
points.push_back(QPoint(2, 4));
points.push_back(QPoint(3, 8));
points.push_back(QPoint(7, 4));
points.push_back(QPoint(10, 5));
points.push_back(QPoint(11, 1));
points.push_back(QPoint(13, 3));
points.push_back(QPoint(17, 6));
points.push_back(QPoint(18, 3));
points.push_back(QPoint(20, 2));
QVector<QString> x_values;
x_values.push_back("0.0");
x_values.push_back("5.0");
x_values.push_back("10.0");
x_values.push_back("15.0");
x_values.push_back("20.0");
QVector<QString> y_values;
y_values.push_back("0.0");
y_values.push_back("2.0");
y_values.push_back("4.0");
y_values.push_back("6.0");
y_values.push_back("8.0");
LineChart* line_chart = new LineChart();
line_chart->addSeries(points, QColor(0x3366CC));
line_chart->setAxisX(x_values);
line_chart->setAxisY(y_values);
line_chart->setLabelX("Label X");
line_chart->setLabelY("Label Y");
line_chart->setTitle("Simple line chart example");
QMainWindowwindow;
window.setWindowTitle("Line Chart");
window.setCentralWidget(line_chart);
window.resize(600, 450);
window.show();
Exemplo de utilizao #2:
QVector<QPoint> points;
points.push_back(QPoint(1, 10));
points.push_back(QPoint(2, 39));
points.push_back(QPoint(3, 23));
points.push_back(QPoint(4, 31));
points.push_back(QPoint(5, 46));
points.push_back(QPoint(6, 29));
points.push_back(QPoint(7, 28));
points.push_back(QPoint(8, 31));
points.push_back(QPoint(9, 28));
points.push_back(QPoint(10, 71));
points.push_back(QPoint(11, 9));
points.push_back(QPoint(12, 17));
QVector<QPoint> points2;
points2.push_back(QPoint(1, 13));
points2.push_back(QPoint(2, 11));
points2.push_back(QPoint(3, 47));
points2.push_back(QPoint(4, 7));
points2.push_back(QPoint(5, 20));
points2.push_back(QPoint(6, 11));
points2.push_back(QPoint(7, 10));
points2.push_back(QPoint(8, 12));
points2.push_back(QPoint(9, 19));
points2.push_back(QPoint(10, 44));
points2.push_back(QPoint(11, 25));
points2.push_back(QPoint(12, 46));
QVector<QString> x_values;
x_values.push_back("1");
x_values.push_back("2");
x_values.push_back("3");
x_values.push_back("4");
x_values.push_back("5");
x_values.push_back("6");
x_values.push_back("7");
x_values.push_back("8");
x_values.push_back("9");
x_values.push_back("10");
x_values.push_back("11");
x_values.push_back("12");
QVector<QString> y_values;
y_values.push_back("0");
y_values.push_back("10");
y_values.push_back("20");
y_values.push_back("30");
y_values.push_back("40");
y_values.push_back("50");
y_values.push_back("60");
y_values.push_back("70");
y_values.push_back("80");
LineChart* line_chart = new LineChart();
line_chart->addSeries(points, QColor(0x3366CC));
line_chart->addSeries(points2, QColor(0xCC6633));
line_chart->setAxisX(x_values);
line_chart->setAxisY(y_values);
line_chart->setLabelX("Meses do Ano");
line_chart->setLabelY("Chuva (mm)");
line_chart->setTitle("Histrico do Clima: Joaaba vs
Floripa");
QMainWindowwindow;
window.setWindowTitle("LineChart Demo");
window.setCentralWidget(line_chart);
window.resize(600, 450);
window.show();
Desta forma, a classe LineChart deve disponibilizar os
seguintes mtodos pblicos:
Assinatura dos Mtodos
void addSeries(QVector<QPoint> series, QColor color);
void setAxisX(QVector<QString> values);
void setAxisY(QVector<QString> values);
void setLabelX(QString name);
void setLabelY(QString name);
void setTitle(QString title);
Assinatura do Mtodo
void addSeries(QVector<QPoint> series, QColor color);
Este mtodo recebe um vetor de pontos (x,y) que especifica
uma srie de valores no grfico formando uma linha. Este
mtodo pode ser chamado mais de uma vez para adicionar
outras sries:
Assinatura do Mtodo
void setAxisX(QVector<QString> values);
Este mtodo recebe um vetor de strings que especificam os
valores exibidos ao longo do eixo X:
Assinatura do Mtodo
void setAxisY(QVector<QString> values);
Este mtodo recebe um vetor de strings que especificam os
valores exibidos ao longo do eixo Y:
Assinatura do Mtodo
void setLabelX(QString name);
Este mtodo recebe a string que apresentada como rtulo
do eixo X:
Assinatura do Mtodo
void setLabelY(QString name);
Este mtodo recebe a string que apresentada como rtulo
do eixo Y:
Assinatura do Mtodo
void setTitle(QString title);
Este mtodo recebe a string que apresentada como ttulo
grfico de linha:

You might also like