Vulkan

使用glutBitmapCharacter 绘制文字

#include "glwidget.h"

const char text[10] = "bruce wuu";
const char x = 'x';
const char y = 'y';
const char z = 'z';
GLWidget::GLWidget(QWidget *parent)
    :QGLWidget(parent)
{
    fEyeValue = 10.0;
}

void GLWidget::draw()
{
    glRasterPos3f(0.0,0.0,0.0);
    for(int i=0;i<10;i++)
        glutBitmapCharacter(GLUT_BITMAP_9_BY_15,text[i]);

    glBegin(GL_LINES);
        glColor3f(1.0,0.0,0.0);
        glVertex3f(-10.0,0.0,0.0);
        glVertex3f(10.0,0.0,0.0);
        glColor3f(0.0,1.0,0.0);
        glVertex3f(0.0,-10.0,0.0);
        glVertex3f(0.0,10.0,0.0);
        glColor3f(0.0,0.0,1.0);
        glVertex3f(0.0,0.0,-10.0);
        glVertex3f(0.0,0.0,10.0);
    glEnd();

    glRasterPos3f(-5.0,0.0,0.0);
    glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,'x');
    glRasterPos3f(0.0,5.0,0.0);
    glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,'y');
    glRasterPos3f(0.0,0.0,5.0);
    glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_10,'z');
}

void GLWidget::initializeGL()
{
    glClearColor(1.0,1.0,0.5,1.0);
    glClearDepth(1.0);
    glDepthFunc(GL_LEQUAL);
    glEnable(GL_DEPTH_TEST);
    glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
    glShadeModel(GL_SMOOTH);

}

void GLWidget::resizeGL(int w, int h)
{
    if(h==0)
        h=1;
    glViewport(0,0,w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.0,(GLfloat)w/h,0.1,1000.0);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
}

void GLWidget::paintGL()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glColor3f(1.0,0.0,0.0);
    gluLookAt(fEyeValue,fEyeValue,fEyeValue,0.0,0.0,0.0,0.0,1.0,0.0);
    draw();
}

void GLWidget::wheelEvent(QWheelEvent *ev)
{
    int delta = ev->delta();
    if(delta>0)
    {
        fEyeValue -=2.0;
    }else
    {
        fEyeValue +=2.0;
    }
    update();
}
glutBitmapCharacter 使用glBitmap绘制文字 - cowboy小屋 - cowboy小屋的博客

posted on 2012-07-26 22:11  Vulkan  阅读(700)  评论(0编辑  收藏  举报

导航