Translation Transformation#

A translation transformation modifies the position of an object by shifting its origin without altering its orientation or shape.

Translation Modes#

Transform Type

Mode

Description

Translation

Constant

The object remains stationary in the scene. No translation is applied.

Linear

See Linear Translation for details.

—

Mathematical Model#

When a translation transformation is applied, the body origin \(O_B\) of the Sprite frame is shifted. The position vector \(\mathbf{P}_B'''\), representing a vertex after flexibility and rotation transform, undergoes the following transformation:

\[\mathbf{P}_{B}''' = \mathbf{T}_{B} \cdot \mathbf{P}_{B}''\]

where the translation matrix (\(\mathbf{T}_{B}\)) is:

\[\begin{split}\mathbf{T}_{B} = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix}\end{split}\]

Here, \(t_x\), \(t_y\), and \(t_z\) represent the translation distances along the inertial \(\hat{\mathbf{e}}_1\), \(\hat{\mathbf{e}}_2\), and \(\hat{\mathbf{e}}_3\) axes.

Linear Translation#

This mode applies a time-dependent translation to the object using an external CSV file.

Linear Translation Transform

The CSV specifies the position of the body frame origin \(O_B\) with respect to the inertial frame at each time step. This path is used to animate the object’s motion over time.

Note

CSV Format

The CSV file should contain:

  • Column 1: \(t_x\) (X-position)

  • Column 2: \(t_y\) (Y-position)

  • Column 3: \(t_z\) (Z-position)

Each row corresponds to one time step.

Final Transformation#

After applying flexibility (\(\mathbf{F}_B\)), rotation (\(\mathbf{R}_B\)), and translation (\(\mathbf{T}_B\)), the final vertex position in the inertial frame is:

\[\mathbf{P}_E = \mathbf{T}_B \cdot \mathbf{R}_B \cdot \mathbf{F}_B \cdot \mathbf{P}_B\]

Where:

  • \(\mathbf{P}_E = \begin{bmatrix} x_E & y_E & z_E & 1 \end{bmatrix}^T\) is the transformed vertex in inertial frame

  • \(\mathbf{P}_B\) is the original vertex in body frame

Usage Notes#

  • The number of rows in the CSV should match the number of animation frames.

  • Ensure consistent units across STL models, scene setup, and trajectory data.

—