世界坐标 (0, 0, 0)
物体相对于父物体的坐标(本地坐标/局部坐标)
矩阵变换:平移矩阵、旋转矩阵、缩放矩阵
一、不包含旋转/缩放的局部坐标->世界坐标的转换
这种方式比较容易理解,要求默认的旋转角度为 (0, 0, 0),缩放为 (1, 1, 1)。计算方式为:转换后的世界坐标 = 父物体的坐标 + 物体的局部坐标
1、物体没有父对象
这种情况下物体相对的父坐标就是世界坐标,所以物体的世界坐标就是其本身的坐标。
物体世界坐标 = 世界坐标 (0, 0, 0) + 局部坐标 (1, 0, 0) = (1, 0, 0)
2、物体有父对象
这种情况下就从物体的局部坐标一直往上加父对象的坐标,直到加上世界坐标。
假设:
- 物体局部坐标 (0, 2, 0)
- 父物体局部坐标 (1, 0, 0)(相对于其父物体,例如:世界)
物体世界坐标 = 世界坐标 (0, 0, 0) + 父物体局部坐标 (1, 0, 0) + 物体局部坐标 (0, 2 ,0) = (1, 2, 0)
二、只包含旋转的局部坐标->世界坐标的转换
1、只有物体旋转
2、只有父物体旋转
3、物体和父物体带旋转
三、只包含缩放的局部坐标->世界坐标的转换
四、包含旋转/缩放的局部坐标->世界坐标的转换
这种情况下变换的顺序非常重要, 通常的变换顺序是先缩放,再旋转,最后是平移。
未完待续……