| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2610 人关注过本帖
标题:问gluLookAt函数,谢谢
只看楼主 加入收藏
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
结帖率:100%
收藏
 问题点数:0 回复次数:12 
问gluLookAt函数,谢谢
想问一下这个函数的具体用法,谢谢,
void gluLookAt(
GLdouble eyex,
GLdouble eyey,
GLdouble eyez,
GLdouble centerx,
GLdouble centery,
GLdouble centerz,
GLdouble upx,
GLdouble upy,
GLdouble upz
);它里面的参数都是什么意思,The position of the eye point(GLdouble eyex,GLdouble eyey,GLdouble eyez,)什么意思啊,还有下面的几个参数,请帮助解析一下,谢谢


搜索更多相关主题的帖子: GLdouble gluLookAt 函数 The eyex 
2007-11-13 09:46
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
前头三个参数为你眼睛的位置,中间三个参数为你要看的那个位置的中心,最后三个参数为那个方向是向上的(如果你是站着的,Y轴正是向上的.如果你是睡着的X,Z就有一个是向上的,想象一下吧)。

=×&D o I p R e E n C g T l X&×=
2007-11-13 10:34
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
收藏
得分:0 
谢谢
2007-11-13 10:38
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
收藏
得分:0 
怎样在VC中判断我按下了方向键,比如说我想在长按向上键的时候,给一个参数不断复值,比如说i+=10什么的,谢谢
2007-11-13 10:49
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
确定是否按下方向键有多个函数GetAsyncKeyState(vk_ code);, OpenGL的glutKeyboadFunc(void(*func)(unsigned char key, int x, int y));, 还有DX的DInput.

=×&D o I p R e E n C g T l X&×=
2007-11-13 11:22
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
收藏
得分:0 

那要怎 么用这个函数呢,能说一下吗,是不是KEY_DOWN=GetAsyncKeyState(vk_ code);然后if (KEY_DOWN=键的ASCII码){i+=4}这样啊,这样好像不行啊,请指点,谢谢

2007-11-13 11:36
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
if(GetAsyncKeyState(VK_DOWN) == -32767)
i+=4;

=×&D o I p R e E n C g T l X&×=
2007-11-14 10:24
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
收藏
得分:0 

32767这个是什么啊

2007-11-14 10:47
sunstudent
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-10-14
收藏
得分:0 

#define KEY_DOWN(vk_code)((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)

然后
BOOL baiscobj::DisplayScene()
{
float speed=0.2f;
if (KEY_DOWN(VK_SHIFT)) speed =speed*4;
if (KEY_DOWN(VK_LEFT)) g_Angle-=speed*2;
if (KEY_DOWN(VK_RIGHT)) g_Angle+=speed*2;
rad_xz = float (3.13149* g_Angle/180.0f);
if (KEY_DOWN(33)) g_elev +=0.2f;
if (KEY_DOWN(34)) g_elev -=0.2f;
if (g_elev<-100) g_elev =-100;
if (g_elev> 100) g_elev = 100;
if (KEY_DOWN(VK_UP))
{ g_eye[2]+=sin(rad_xz)*speed;
g_eye[0]+=cos(rad_xz)*speed;
}
if (KEY_DOWN(VK_DOWN))
{ g_eye[2]-=sin(rad_xz)*speed;
g_eye[0]-=cos(rad_xz)*speed;
}
g_eye[1] =1.8;

g_look[0] = float(g_eye[0] + 100*cos(rad_xz));
g_look[2] = float(g_eye[2] + 100*sin(rad_xz));
g_look[1] = g_eye[1];

gluLookAt(g_eye[0],g_eye[1],g_eye[2],g_look[0],g_look[1]+g_elev,g_look[2],0.0,1.0,0.0);
return TRUE;
}不明白if (KEY_DOWN(33)) g_elev +=0.2f;中33是什么东西,呵,请教一下!

2007-11-14 10:57
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
gluLookAt(g_eye[0],g_eye[1],g_eye[2],g_look[0],g_look[1]+g_elev,g_look[2],0.0,1.0,0.0);

g_elev是在这里使用的,所g_elev+=0.0f;是调节目标位置的高低度的.33是VK_PRIOR,34是VK_NEXT(分别是Page Up键与PageDown键).

=×&D o I p R e E n C g T l X&×=
2007-11-14 11:09
快速回复:问gluLookAt函数,谢谢
数据加载中...
 
   



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

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