Alternativa3d中的Transform3D和Stage3D的Matrix3D

背景

Alternativa3d在3D坐标转换计算时,是用了自己的Transform3D,而没有采用Stage3D自带的Matrix3D。

两者区别

两者均是坐标转换矩阵,区别在于Transform3D只保存了4*3的信息,而Matrix3D可以保存4*4。
Alternativa3d的Object3D里的代码:

/**
         * The <code>matrix</code> property represents a transformation matrix that determines the position
         * and orientation of an <code>Object3D</code>.
         */
        public function get matrix():Matrix3D
        {
            if (transformChanged)
                composeTransforms();
            return new Matrix3D(Vector.<Number>([transform.a, transform.e, transform.i, 0,    transform.b, transform.f, transform.j, 0, transform.c, transform.g, transform.k, 0,   transform.d, transform.h, transform.l, 1]));
        }

可以看出两者是可以互相转换的。Transform3D转换后的Matrix3D如下:

aei0
bfj0
cgk0
dhl1

实际上Transform3D在进行矩阵运算时就是按照这个矩阵来的,只是没有存下最后一个常量列向量。
(d,h,l) 表示 (Δx,Δy,Δz)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值