0

我有一个包含16个浮点数的数组,我想用这个数组来初始化CATransform3D的值,即m11,m12,......,有什么方法可以初始化吗?

4

2 回答 2

0

CATransform3D定义为:

struct CATransform3D
{
  CGFloat m11, m12, m13, m14;
  CGFloat m21, m22, m23, m24;
  CGFloat m31, m32, m33, m34;
  CGFloat m41, m42, m43, m44;
};

像下面这样的东西应该可以工作:

CATransform3D myTransform;
myTransform.m11 = array[0];
myTransform.m12 = array[1];
myTransform.m13 = array[2];
myTransform.m14 = array[3];
myTransform.m21 = array[4];
myTransform.m22 = array[5];
myTransform.m23 = array[6];    
myTransform.m24 = array[7];
...
myTransform.m44 = array[15];    
于 2013-03-06T09:32:14.763 回答
0

它有点脏,但你可以这样做:

CGFloat array[16];
...
CATransform3D myTransform;
memcpy(&myTransform, &array, sizeof(CATransform3D));
于 2013-03-06T09:49:11.500 回答