Alternativa3d中的Transform3D和Stage3D的Matrix3D

本文探讨了Alternativa3d中Transform3D与Stage3D中Matrix3D的区别。Transform3D仅保存4*3的信息,而Matrix3D保存完整的4*4矩阵。文章详细介绍了两者之间的转换方式,并解释了它们在3D坐标转换计算中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值