Transform.transform(float[] vectors)的物理意义

本文详细介绍了在M3G中如何通过Transform对象获取物体在世界坐标系中的位置。Transform由一个4x4的浮点数矩阵构成,文章特别强调了如何利用此矩阵将向量转换为物体的实际坐标。

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

Transform.transform(float[] vectors)的物理意义
在碰撞检测时,首先我们要获得物体在World中的位置,所以要首先获得World中的Transform对象
在M3G中,Transform是由一个4x4的float[]数组组成的,排列方式如下
m11, m12, m12, tx
m21, m22, m23, ty
m31, m32, m33, tz
0   ,  0   ,  0   ,  1
---------------------------------------------------------------------------------------
(昨天没写完,今天接着)
---------------------------------------------------------------------------------------
如果我要想办法获得[tx, ty, tz],那么就需要对这个矩阵进行一定的变换
算了,我不说我遇到的弯路了,直接写最终方法好了
float[] v = {0, 0, 0, 1};
trans.transform(v);
trans是这个物体在world中的transform,在执行完trans.transform(v)之后
v的值变为{tx,ty,tz,1}
原因:
v被当作一个4*1的向量,右乘以这个矩阵
(我开始时把v当作一个1*4的向量去左乘矩阵了,所以根本解释不通。。) 
要注意,M3G里面和OpenGL都是一样,都是列向量
所以,这个函数的物理意义就是把这些向量用Transform这个矩阵进行变换,得到变换后的坐标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值