计算机图形学(四)几何变换_5_三维空间的几何变换_1_三维平移

三维平移

在三维齐次坐标表示中,任意点P = (x, y, z)通过将平移距离tx, ty,和tz加到P的坐标上而平移到位置P’= (x', y', z'):

我们可以用下面等式中的矩阵形式来表达三维平移操作。

但现在坐标位置P和P’用4元列向量的齐次坐标表示,且变换操作T是4 x 4矩阵: 

或:

    在三维空间中,对象的平移通过平移定义该对象的各个点然后在新位置重建该对象而实现。对 于由一组多边形表面表示的对象,可以将各个表面的顶点进行平移如下图,然后重新显示 新位置的面。

下面的程序段给出了输人一组平移参数后对平移矩阵的构造。为了在这些过程中构造该矩阵,
typedef GLfloat Matrix4x4 [4][4];

/* Construct the 4 by 4 identity matrix.*/
void matrix4x4SetIdentity (Matrix4x4 matIdent4x4)
{
	GLint  row, col;
	for (row = 0; row < 4; row++)
		for (col = 0; col < 4; col++)
			matIdent4x4 [row][col] = (row == col);
}

void translate3D (GLfloat tx, GLfloat ty, GLfloat tz)
{
	Matrix4x4 matTransl3D;
	
	/* Initialize translation matrix to identity. */
	matrix4x4SetIdentity(matTransl3D);
	
	matTransl3D [0][3] = tx;
	matTransl3D [1][3] = ty;
	matTransl3D [2][3] = tz;
}

三维平移变换的逆变换使用二维中同样的方法获得,即取平移距离tx,ty和tz的负值。这将生 成相反的平移,而平移矩阵和其逆矩阵之积是单位矩阵。



  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值