Hello, apologies in advance if my questions seem rather ignorant. I'm trying my best (and struggling) to understand the topic, but my background in math is weak, and i need the math for artistic purposes.(adsbygoogle = window.adsbygoogle || []).push({});

I want to iteratively move and rotate a point in 3D space (move, rotate, move, rotate...) and from what I understand multiplication of 4x4 matrices lends itself to the task. The point has a direction it's pointing in (necessary for such motion); I take it that makes it a vector?

Let's say the point's position (Cartesian coordinates) is [itex](2, 1.5, 3)[/itex]

And the direction it points in is [itex](1, 0, 0)[/itex]

From what I understand, I first create a matrix that represents the current state:

[itex]Matrix1=

\begin{bmatrix}

0 & 0 & 0 & 2 \\

0 & 0 & 0 & 1.5 \\

0 & 0 & 0 & 3 \\

0 & 0 & 0 & 1 \end{bmatrix}[/itex]

Is this matrix ok (maybe missing 1's in the first 3 columns?) or have I fundamentally misunderstood something?

Next I have to create a matrix that transforms the location and rotation of the point/vector. Through my online searches I found this:

[itex]Matrix2=

\begin{bmatrix}

tx^2+c & txy-sz & txz+sy & X_{1} \\

txy+sz & ty^2+c & tyz-sx & Y_{1} \\

txz-sy & tyz-sx & tz^2+c & Z_{1} \\

0 & 0 & 0 & 1 \end{bmatrix}[/itex]

Where:

[itex]X_{1}, Y_{1}, Z_{1}[/itex] is the desired translation in Cartesian coordinates, e.g. [itex]0, 0, 3.75[/itex] to move 3.75 units along the system's z axis.

[itex]x, y, z[/itex] are the unit vector ([itex]1, 0, 0[/itex] in my case)

[itex]c = cosθ[/itex]

[itex]s = sinθ[/itex]

[itex]t = 1-cosθ[/itex]

Is the angle [itex]θ[/itex] in degrees or radians, can you tell from looking at its usage?

1. Once I have constructed Matrix2, do I multiply it by Matrix1 to derive a Matrix3 which contains the new position/direction of my point?

2. How would i go about retrieving the new Cartesian coordinates (position and rotation) from Matrix3?

3a. If Matrix2 contains my desired transformation, can i repeatedly multiply it with the result of a prior multiplication (M3'=M3xM2, M3=M3', M3'=M3xM2...) to achieve my original goal of iterative translation (most likely resulting in a circle or helix)?

3b. If i had to feed Matrix2 a unit vector, wouldn't what comes in from Matrix3' during the next iteration be unsuitable?

Again, sorry if i expose gaping holes in my comprehension. I hope my intentions make some sense.

Thanks!

**Physics Forums - The Fusion of Science and Community**

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# How to use a 4x4 Matrix to translate a point in 3D space

Loading...

Similar Threads - Matrix translate point | Date |
---|---|

A Cross Product Matrix | May 10, 2017 |

A Period matrix of the Jacobian variety of a curve | Jan 21, 2017 |

A Maurer–Cartan forms for a matrix group? | Sep 7, 2016 |

Calculating mixed partial derivatives on a 3D mesh | Oct 15, 2015 |

Translation using rotation matrix | Apr 23, 2012 |

**Physics Forums - The Fusion of Science and Community**