skyblue_2012
2015-11-16 16:39
采纳率: 15.4%
浏览 3.2k

openGl关于绘制文字调整文字位置的问题

void display(void) {
glClear(GL_COLOR_BUFFER_BIT);

 glColor3f(1.0f, 0.0f, 0.0f);
 glRasterPos2f(0.0f, 0.0f);
 drawString("Hello, World!");

 glutSwapBuffers();

}
以上程序在绘制了Hello,World后如何设置文字的位置?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • ysuwood 2015-11-16 22:52
     glRasterPos2f(x,y)其实就相当于是glVertex2f(x,y)的坐标,只是glRasterPos2f(x,y)用于显示[字体]时设置字符的起始位置,而glVertex2f(x,y)是绘制一个2D点.且glRasterPos2f(x,y)仍受当前模视矩阵的影响,即glTranslatef()可改变字符显示的位置, glRasterPos2f(x,y)显示字体时,其位置可随模视矩阵的改变而改变.
    如:
    glViewport(0,0,width,height);                    // 设置当前的视口
    // width=640,height=480
    gluPerspective(45.0f* 2,(GLfloat)width/(GLfloat)height,0.1f,1000.0f);
    glTranslatef(0.0f,0.0f, -480);         //当前局部坐标为(0,0,-480)
    glRasterPos2f( -640, -480);//在视口的左下角显示字体
    glPrint(“hello”);//显示字符
    
    评论
    解决 无用
    打赏 举报
  • John_ToString 2015-12-04 02:57

    glRasterPos2f(x,y)其实就相当于是glVertex2f(x,y)的坐标,只是glRasterPos2f(x,y)用于显示[字体]时设置字符的起始位置,而glVertex2f(x,y)是绘制一个2D点.且glRasterPos2f(x,y)仍受当前模视矩阵的影响,即glTranslatef()可改变字符显示的位置, glRasterPos2f(x,y)显示字体时,其位置可随模视矩阵的改变而改变.
    如:
    glViewport(0,0,width,height); // 设置当前的视口
    // width=640,height=480
    gluPerspective(45.0f* 2,(GLfloat)width/(GLfloat)height,0.1f,1000.0f);
    glTranslatef(0.0f,0.0f, -480); //当前局部坐标为(0,0,-480)
    glRasterPos2f( -640, -480);//在视口的左下角显示字体
    glPrint(“hello”);//显示字符

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题