因为使用的是Qt框架,没有使用GLUT,所以改写了书中部分代码:
1. 文本用QString数组保存。
2. 绘制字符没有使用GLUT函数,直接使用QPainter进行绘制,Qt绘图坐标是以左上角为原点(0,0),因此,坐标也需要进行变换。
关键部分源代码,其它可以参照前面章节的例子。
a. 绘制折线图
QString label[12] = {
"Jan", "Feb", "Mar", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
GLint dataValue[12] = {
420, 342, 324, 310, 262, 185, 190, 196, 217, 240, 312, 438
};
void OpenGLWidget::lineGraph()
{
GLint month, k;
GLint xRaster = 20;
GLint yRaster = 150;
GLint x = 30;
int h = this->height();
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 1.0);
glBegin(GL_LINE_STRIP);
for(k=0; k< 12; k++)
glVertex2i(x+k*50, dataValue[k]);
glEnd();
QPainter painter(th