游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2759|回复: 4

世界坐标和局部坐标的旋转问题

[复制链接]

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2006-3-10 14:54:00 | 显示全部楼层 |阅读模式
对于一个新手来说,要实现世界坐标和局部坐标的旋转(即世界坐标的旋转指的是整个大场景的旋转,局部坐标旋转指的是大场景中某个物体的旋转 ),真的感觉困难重重。我采用的是基于单文档的OpenGL框架,在网上搜索了,找不到相应的介绍或例子,同时OpenGL宝典这些好像也没有什么介绍。

说了这么大堆废话,就是想请高手们帮帮忙,可否给点指导或者贴点代码出来学习?
谢谢了!!

5

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2006-3-11 10:20:00 | 显示全部楼层

Re: 世界坐标和局部坐标的旋转问题

       兄弟,推荐你弄本Opengl 红宝书看看,看后你就会有豁然开朗的感觉。
       就本人的理解,说一下我的看法。首先,坐标系统的概念你还比较模糊。你这里说的应该是全局坐标与局部坐标的区别。
       对于平移旋转等变换的理解,可以从全局也可从局部坐标理解。变换的次序很重要。如果从全局理解,OpenGL中的 实际变换顺序与代码指定的顺序相反。而如果从局部理解,设想有个坐标系与所绘制物体绑在一起,平移是局部坐标系与物体一起平移,旋转时绕局部坐标系的原点。这样理解的变换顺序就是自然顺序。
       不管采用哪种理解方式,代码顺序都是相同的,只是理解的顺序相反,看你习惯哪种理解方式。我在这里说,估计你是一头雾水,限于篇幅限制,我不好举例,这里只是给你一个大致的引导。所以还是看看红宝书,上面有很详细的论述。

5

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2006-3-11 10:22:00 | 显示全部楼层

Re:世界坐标和局部坐标的旋转问题

OpenGL红宝书关于这一点的论述在第三张第二节 视点变换和模型变换中。

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-3-11 16:19:00 | 显示全部楼层

Re:世界坐标和局部坐标的旋转问题

不用管什么"世界坐标"和"局部坐标",
一切都是用 glRotatef 实现的.

glRotatef 用在最前面,就能实现 "整个大场景的旋转"

只在物体前加 glRotatef ,就能实现 "某个物体的旋转"

例子:
//------------------------------"整个大场景的旋转"
glRotatef(90.0f,0.0f,1.0f,0.0f);//先 旋转
changjing(); //画 场景
wuti(); //画 物体
//------------------------------这样就是 "整个大场景的旋转"


//------------------------------"某个物体的旋转"
changjing(); //先 画 场景
glRotatef(90.0f,0.0f,1.0f,0.0f); //画完场景,再旋转
wuti(); //画 物体
//------------------------------这样就是 "某个物体的旋转"

5

主题

14

帖子

14

积分

新手上路

Rank: 1

积分
14
 楼主| 发表于 2006-3-11 22:07:00 | 显示全部楼层

Re:世界坐标和局部坐标的旋转问题

谢谢这么多高手给小弟讲解和指导!谢谢了!!
我还想问一下,怎样实现用鼠标来旋转世界坐标和局部坐标啊??
因为现在要做一个这方面的东东,是不是向glRotatef 这个函数传参数进去就可以了吗?
还是有其他什么方法呢?
再次谢谢了!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 21:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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