您的位置:首页 > 其它

[3d笔记-1]基本几何---个人理解笔记

2007-10-24 23:17 281 查看
关于3x4(实际的4x4)矩阵的个人解说:
矩阵如下:
n11 n12 n13 n14
n21 n22 n23 n24
n31 n32 n33 n34
u   v   w   j
其中 u   v   w   j是本人加上去的,具体类似AS3中的2d矩阵最后以行,其实可以忽略

产生平移 旋转 倾斜或剪切 的作用阵列:
n11 n12 n13
n21 n22 n23
n31 n32 n33

坐标整列
n14
n24
n34

一般情况下可以定义3x4实际上应该当作4x4齐次阵列默认定义如下
n11 n12 n13 n14
n21 n22 n23 n24
n31 n32 n33 n34
0   0   0   1

平移时阵列表现:
1   0   0   n14
0   1   0   n24
0   0   1   n34
0   0   0   1
可以看出当对角线为1 最后一列前三行仅有值时作平移运动

缩放时阵列表现:
s1  0   0   0
0  s2   0   0
0   0   s3  0
0   0   0   1
s1对应x轴方向的缩放
s2对应y轴方向的缩放
s3对应z轴方向的缩放
一般应用于一同变换 可参考AS3 的matrix矩阵的scale方法,与之类似

旋转时阵列请看继续下一段回复

关于旋转

声明:

rad为将旋转的角度

var c :Number   = Math.cos( rad );
即余弦值
var s :Number   = Math.sin( rad );
即正弦值

绕x轴旋转整列状态
1   0   0   0
0   c   -s  0
0   s   c   0
0   0   0   1

绕y轴旋转整列状态
 c   0   s   0
 0   1   0   0
 -s  0   c   0
 0   0   0   1

绕z轴旋转整列状态
 c   -s  0   0
 s   c   0   0
 0   0   1   0
 0   0   0   1
 
 由于存在3轴故
 可以分为
 rotationX
 rotationY
 rotationZ
 
 值得注意的是在此矩阵x y z 变换时候不需要考虑y轴方向
 而转换到 flash x y 时就需要定义y的方向或者考虑y的方向
 因为在舞台中y是向下的
 
 另外要考虑的是我们现在一般都采用(0,0)左上对其方式,这也需要被自定义
 或者去考虑是否要让他们像我们数学环境下考虑的中心(0,0);不过好在这一点比起前面一点来说并不那么重要
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  n2 matrix flash c