游戏开发论坛

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

请问如何根据对世界坐标系的旋转得出局部坐标系的基

[复制链接]

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2008-8-26 09:45:00 | 显示全部楼层 |阅读模式
我现在有一个世界坐标系
用B表示|x y z w|
   |1000|
B =|0100|
   |0010|
   |0001|

如果我想将这个坐标系绕x轴旋转是不是直接用    用于点的旋转矩阵     右乘它

B X R

  |1  0    0   0|
R=|0 cos  sin  0|
  |0 -sin cos  0|
  |0  0    0   1|

这样直接计算我没有在程序里跑过,但是手算之后好像不对。
请各位大侠赐教。如何能得到世界坐标系经过旋转之后的局部坐标系的基。

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-8-26 11:25:00 | 显示全部楼层

Re:请问如何根据对世界坐标系的旋转得出局部坐标系的基

绕坐标系自己的轴旋转,用R*B;绕世界坐标系的轴旋转用B*R。

如果是用OpenGL的列矩阵的话,就正好相反。

362

主题

3023

帖子

3553

积分

论坛元老

Rank: 8Rank: 8

积分
3553
发表于 2008-8-26 16:43:00 | 显示全部楼层

Re:请问如何根据对世界坐标系的旋转得出局部坐标系的基

齐次坐标要麻烦一点,还需要知道坐标系原点的位置。如果是非其次坐标系,的确是:
[ R*i, R*j, R*k ] * 用新基表示的坐标 == 标准基的坐标
而且,这个矩阵的 逆 == 它的转置 (正因为如此所以最容易迷惑,因为DX的规范是vec*matrix,当心阿!)

但其次坐标系的4x4矩阵要麻烦点,第4行有原点位置,而且,逆 不等于 转置:
[ R*i, R*j, R*k, 0
   x     y    z   1 ]

其中 x,y,z == R*标准基原点
这里R*标准基原点仍然是[0 0 0 1],但这是特殊情况下的巧合

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
 楼主| 发表于 2008-8-27 11:56:00 | 显示全部楼层

Re:请问如何根据对世界坐标系的旋转得出局部坐标系的基

谢谢各位了,拜谢拜谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 13:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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