---
name: "glTranslate"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glTranslate"
---

# glTranslate(3x)

multiply the current matrix by a translation matrix

## NAME

**glTranslated, glTranslatef** - multiply the current matrix by a translation matrix

## C SPECIFICATION

void **glTranslated**( GLdouble *x*,

```
	GLdouble y,
	GLdouble z )
```

void **glTranslatef**( GLfloat *x*,

```
	GLfloat y,
	GLfloat z )
```

delim $$

## PARAMETERS

- *x*, *y*, *z*

  Specify the *x*, *y*, and *z* coordinates of a translation vector.

## DESCRIPTION

**glTranslate** produces a translation by  $("x","y","z")$. The current matrix (see \
 **glMatrixMode**) is multiplied by this translation matrix, with the product replacing the current matrix, as if **glMultMatrix** were called with the following matrix for its argument:

left (  ~ down 20 matrix {\
    ccol { 1~~ above 0~~ above 0~~ above 0~~ }\
    ccol { 0~~ above 1~~ above 0~~ above 0~~ }\
    ccol { 0~~ above 0~~ above 1~~ above 0~~ }\
    ccol { "x"~ above "y"~ above "z"~ above 1} } ~~right )

If the matrix mode is either **GL\_MODELVIEW** or **GL\_PROJECTION**, all objects drawn after a call to **glTranslate** are translated.

Use **glPushMatrix** and  **glPopMatrix** to save and restore the untranslated coordinate system.

## ERRORS

**GL\_INVALID\_OPERATION** is generated if **glTranslate** is executed between the execution of **glBegin** and the corresponding execution of **glEnd**.

## ASSOCIATED GETS

**glGet** with argument **GL\_MATRIX\_MODE**\
 **glGet** with argument **GL\_COLOR\_MATRIX**\
 **glGet** with argument **GL\_MODELVIEW\_MATRIX**\
 **glGet** with argument **GL\_PROJECTION\_MATRIX**\
 **glGet** with argument **GL\_TEXTURE\_MATRIX**

## SEE ALSO

**glMatrixMode(3G)**, **glMultMatrix(3G)**,  **glPushMatrix(3G)**, **glRotate(3G)**, **glScale(3G)**
