游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2784|回复: 3

glRotatef(30,1,0,0)+glRotatef(20,0,1,0)==glRotatef(50,1,1,0)??

[复制链接]

5

主题

8

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2009-11-19 11:50:00 | 显示全部楼层 |阅读模式
glRotatef(30,1,0,0)+glRotatef(20,0,1,0)
等于glRotatef(?,?,?,?)


先旋转glRotatef(30,1,0,0)
再旋转glRotatef(20,0,1,0)
我想直接旋转一次 从而达到 目的
glRotatef(50,1,1,0)(这样肯定是错的)
glRotatef(?,?,?,?)

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2009-11-19 15:25:00 | 显示全部楼层

Re:glRotatef(30,1,0,0)+glRotatef(20,0,1,0)==glRotatef(50,1,1,0)??

(900+400)^(0.5)=36.0555f
30/36.0555=0.832f
20/36.0555=0.555f

glRotatef(36.0555f,0.832f,0.555f,0.0f)

或者
glRotatef(1,30,20,0)

5

主题

8

帖子

12

积分

新手上路

Rank: 1

积分
12
 楼主| 发表于 2009-11-24 10:12:00 | 显示全部楼层

Re:glRotatef(30,1,0,0)+glRotatef(20,0,1,0)==glRotatef(50,1,1,0)??

(900+400)^(0.5)=36.0555f    900=30的平方?  400=20的平方?  ^(0.5)这个是固定的?
30/36.0555=0.832f       30=之前度数?  36.0555这个难道是代表X方向旋转?  如果是glRotatef(30,0.5,0,0) 呢?

20/36.0555=0.555f      20=之前Y轴旋转度数?   36.0555代表Y轴方向旋转?  如果是glRotatef(20,0,0.5,0)呢?

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2009-11-30 22:46:00 | 显示全部楼层

Re: glRotatef(30,1,0,0)+glRotatef(20,0,1,0)==glRotatef(50,1,1,0)??

glRotatef函数的第一个参量是常数C,后三位是矢量(X,Y,Z).
旋转的失量是(CX,CY,CZ)

你要做的是失量的加减运算。。。这样说明白了么?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-17 16:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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