游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5208|回复: 8

已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它画

[复制链接]

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-5-8 11:26:00 | 显示全部楼层 |阅读模式
  我是一个OPENGL新手,用VC写的一个程序,想在窗户画出一个矩形,矩形的坐标是我已经指定的。但OPENGL的用户坐标系跟VC的窗口坐标不是一回事啊,那应该怎样用OPENGL画出指定了窗口坐标的矩形呢?
  这跟投影方式,视口变换有关没呢,请教各位大侠了。

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-8 15:54:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

用正交投影来做

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-5-8 17:08:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

我用的也是正交投影
现在问题是对OPENGL中的用户坐标系与屏幕坐标系之间的转换不熟悉。

8

主题

65

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2005-5-8 20:35:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

使用Viewport()

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-8 22:07:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

http://www.lighthouse3d.com/opengl/glut/index.php?gameglut
http://www.lighthouse3d.com/opengl/glut/examples/glutgm.zip
希望这个例子可以给你帮助
加油!:)

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-5-9 11:24:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

可是这个需要glut吧,我是个新手,没用过也没有glut呢
用OPENGL的基本功能能实现么?

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-5-9 15:46:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

切换正交投影的部分并没有用到glut呀

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-5-9 18:05:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它


编译不了的,
我看看代码

20

主题

86

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2005-5-10 12:00:00 | 显示全部楼层

Re:已知要画的矩形在窗口中的坐标,用OPENGL怎么实现把它

窗口座标(x=0,y=0)在左上角,y的正方向为向下,Opengl正交投影座标(x=0,y=0)默认在右下角,y的正方向为向上,你可以把opengl的座标原点移到左上角,然后你就可以按窗口座标来画矩形,只要注意对y座标取反(-y)就可以了.
glViewport(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
glDepthRange(-100,100);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0,SCREEN_WIDTH,0,SCREEN_HEIGHT,-100,100);
glTranslatef(0,SCREEN_HEIGHT,100);       
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-25 15:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表