您的位置:首页 > 其它

vtkMatrix4x4::Multiply4x4(const double a[16], const double b[16], double c[16])

2016-06-21 15:57 411 查看
vtk库源码如下:

193 //
Multiplies matrices a and b and stores the result in c.

194 inline
void
vtkMatrix4x4::Multiply4x4(const
double a[16],
const double b[16],

195 
double c[16])

196 {

197 
double tmp[16];

198 

199 
for (int i = 0; i < 16; i += 4)

200 
{

201 
for (int j = 0; j < 4; j++)

202 
{

203 
tmp[i + j] = a[i + 0] * b[j + 0] +

204 
a[i + 1] * b[j + 4] +

205 
a[i + 2] * b[j + 8] +

206 
a[i + 3] * b[j + 12];

207 
}

208 
}

209 

210 
for (int k = 0; k < 16; k++)

211 
{

212 
c[k] = tmp[k];

213 
}

214 }

215 

216 //----------------------------------------------------------------------------

217 inline
void
vtkMatrix4x4::Multiply4x4(

218 
const
vtkMatrix4x4 *a, const

vtkMatrix4x4 *b,
vtkMatrix4x4 *c)

219 {

220 

vtkMatrix4x4::Multiply4x4(*a->Element, *b->Element,
*c->Element);

221 }

在做图像配准中,需要计算两个坐标空间的矩阵乘积,即用到上面函数。

picMatrix->Invert()
vtkMatrix4x4::Multiply4x4(ndiMatrix, picMatrix, coarse);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: