您的位置:程序门 -> vc/mfc -> 图形处理/算法



请教:用opengl在屏幕上绘制文字


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教:用opengl在屏幕上绘制文字
发表于:2007-07-16 20:49:40 楼主
请教:如何用opengl在屏幕指定位置上绘制文字?
我用glrasterpos3f(100,80,0);
cstring   str= "test ";
glcalllists(str.getlength(),gl_unsigned_byte,str);
为什么不能显示呢?有没有简单的方法实现该功能呢?
谢谢!
发表于:2007-07-17 10:01:041楼 得分:0
因为glrasterpos3f()设置的坐标太大了。   另外z设成0   也是错误的。
你想想0就是屏幕   就是你的眼睛所在那个平面。怎么可能看的见呢?
所以绘制文字按照网上那些教材的说法是肯定能显示的,只是有时候glrasterpos3f()没设置好而已。     我给一个值   :   透视为45度,glrasterpos3f(-0.040,0.030,-0.1)(靠近左上边缘)本来想说个屏幕边缘值的,又怕万一你看不见。z要设置为负值才可以,   因为字需要在你眼的前方。。       应该能解决吧。肯定是坐标问题。  
  另外我出现过不关纹理(gldisable)不出现字的未知情况,你也可以看下是不是这个原因。
发表于:2007-07-17 10:02:332楼 得分:0
这里的   x,y值   和最终显示的位置       都是按透视变换的视锥,根据z值,   计算出来的。
一般试出来就可以了。
发表于:2007-07-17 22:33:193楼 得分:0
我今天又调试了我的程序,因为我的语句
glrasterpos3f(100,80,0);
cstring   str= "test ";
glcalllists(str.getlength(),gl_unsigned_byte,str);
是在view的ondraw()函数里,如果刷新试图,字符串就可以被绘制到屏幕上,因此我在ondraw里增加了invalidate()语句,就可以正确显示了。
发表于:2007-07-20 11:30:524楼 得分:0
呵呵。。恩。
不知道该说什么了。我自以为是了。
至于在ondraw()里加invalidate()我也觉得是件奇怪的事情。但不说什么了。
我只能说自己的程序自己条理好,因为自己最清楚。又不能贴全部代码,旁人是帮不了你的。
所谓代码上下文环境。
一起加油吧。
发表于:2007-07-22 14:18:595楼 得分:0
我都试过了呀   怎么你们说的都不行呀


快速检索

最新资讯
热门点击