| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3617 人关注过本帖
标题:[OpenGL]请问在OpenGL窗体内怎么绘制二维图片?如对话框,按钮等?
只看楼主 加入收藏
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,会。但是我只知道绘制3D图形(glVertex,glNormal,glTexCoord,glBindTexture等函数),但我不知道怎么绘制2D图形在OpenGL窗体内,
我只会用BitBlt绘制,但我想用gl库里的函数,只是不知道哪个函数是绘制2D图形的

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-09-21 19:02
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 

我想知道的正是这个啊

[此贴子已经被作者于2007-9-21 19:05:26编辑过]


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-09-21 19:04
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_EQUAL, 0x08);
glBindTexture(GL_TEXTURE_2D, texture);//选择之前绑定的图片
// 开始绘制
glBegin(GL_QUADS);
glTexCoord2f(1.0f, 0.0f); glVertex3f(-x, y, 0.0f); // 右上点
glTexCoord2f(0.0f, 0.0f); glVertex3f( x, y, 0.0f); // 右上点
glTexCoord2f(0.0f, 1.0f); glVertex3f( x,-y, 0.0f); // 右下点
glTexCoord2f(1.0f, 1.0f); glVertex3f(-x,-y, 0.0f); // 左下点
glEnd();
glDisable(GL_ALPHA);
glDisable(GL_BLEND);

=×&D o I p R e E n C g T l X&×=
2007-09-21 19:35
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 

跟绘制3D差不多嘛,还是要3个坐标。BitBlt只要X,Y坐标就可以,只是Z为0……


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-09-23 09:30
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
这只有说明如何去绘制透明的图片,绘制的方法不只这一种.比如使用:glDrawPixels()

=×&D o I p R e E n C g T l X&×=
2007-09-23 11:05
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,我听过glDrawPixels(),你上面的方法当改变了视角(如glLookAt)就不行了,但glDrawPixels好像可以

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-09-23 15:30
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
用公告板技术就可解决改变视角的问题.

=×&D o I p R e E n C g T l X&×=
2007-09-23 18:56
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 

这里的贵宾挺厉害的(恩,这个,貌似比我厉害),呵呵,有空到C图形编辑版去看看啊,唉,难得碰到一个搞OpenGL的,我在那边都快闷死了 。有机会咱讨论讨论,学习学习。

[此贴子已经被作者于2007-9-23 21:08:43编辑过]


我的征途是星辰大海
2007-09-23 20:26
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
你可以将一个与你视觉垂直的平面的坐标与你的视角绑定,然后在这个平面上绘制按钮等,就能达到你要求的效果。一般这个平面离你设的摄像机很近,那样效果才好。
事实上,可以用3D函数绘制,然后只要让它随着你的视角一起运动,即与你的视角绑定,那么你就会觉得它是2D的。
当然,绘制的位置至关重要,一定要选好。
不过这并不是最好的方法,我以前看到过更好的,我需要一段时间查资料,可能要过几天才能告诉你,如果你能等的话

[此贴子已经被作者于2007-9-23 20:43:44编辑过]


我的征途是星辰大海
2007-09-23 20:36
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
恩,希望你快点查到资料

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-09-24 17:51
快速回复:[OpenGL]请问在OpenGL窗体内怎么绘制二维图片?如对话框,按钮等?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037281 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved