Register to reply

Transforming a 3D vector using matrix

by Gajan
Tags: matrix, transformation, vector
Share this thread:
Gajan
#1
Feb18-09, 05:13 AM
P: 3
Hi Friends,

I have a problem in transforming a vector in 3d using a matrix.

I have two points A, B. Assume origin is O, here A,B ,O are in 3d.

First construct a vector AB:

OB = OA + AB
AB = OB - OA
AB = OB + AO

I have a 4*4 matrix that gives the transformation matrix(rotation+translation)

I need to transform vector AB using this matrix.

Currently what I do is transform individual points A , B first and the reconstruct the vector A'B' again (after tranforming)
What I want to do is to without doing the above steps, transform the vector as it is (without transforming the individual points). Is this possible?

How could I do this computation?

I am looking for your reply!

thank you.

/Gajan
Phys.Org News Partner Science news on Phys.org
Law changed to allow 'unlocking' cellphones
Microsoft sues Samsung alleging contract breach
Best evidence yet for coronal heating theory detected by NASA sounding rocket
HallsofIvy
#2
Feb18-09, 06:36 AM
Math
Emeritus
Sci Advisor
Thanks
PF Gold
P: 39,363
Using a single 4x4 matrix to do both rotation and translation, you have to use a "projective" space. That means you are representing the point (x,y,z) as the (column) vector [x y z 1] with the provision that [a b c d] is the same as [a/d b/d c/d 1] (d can never be 0). In that case the matrix that rotates, say, [itex]\theta[/itex] degrees about the y-axis and translates by (tx,ty, tz) is
[tex]\begin{bmatrix} cos(\theta) & 0 & -sin(\theta) & tx \\ 0 & 1 & 0 & ty \\ sin(\theta) & 0 & cos(\theta) & tz \\ 0 & 0 & 0 & 1\end{bmatrix}[/tex]
Notice that in the particular case of [itex]\theta= 0[/itex] where there is no rotation and so a pure translation, this becomes
[tex]\begin{bmatrix} 1 & 0 & 0 & tx \\ 0 & 1 & 0 & ty \\ 0 & 0 & 1 & tz \\ 0 & 0 & 0 & 1\end{bmatrix}\begin{bmatrix} x \\ y \\ z \\ 1\end{bmatrix}= \begin{bmatrix} x+ tx \\ y+ ty \\ z+ tz \\ 1\end{bmatrix}[/tex]

While if tx= ty= tz= 0 so there is a pure rotation and no translation it is
[tex]\begin{bmatrix} cos(\theta) & 0 & -sin(\theta) & 0 \\ 0 & 1 & 0 & 0 \\ sin(\theta) & 0 & cos(\theta) & 0 \\ 0 & 0 & 0 & 1\end{bmatrix}\begin{bmatrix} x \\ y \\ z \\ 1\end{bmatrix}= \begin{bmatrix} xcos(\theta)- zsin(\theta) \\ y \\ xsin(\theta)+ zcos(\theta)\end{bmatrix}[/tex]

I would handle a general rotation as the product of two rotations around coordinate axes.
Gajan
#3
Feb18-09, 07:40 AM
P: 3
Hi,

First of all thank you for your reply.

In my case , I have the matrix in the following form:

Transpose matrix of the transformation : M
vector :V

V * M

still is it the same way the matrix product is done?

HallsofIvy
#4
Feb18-09, 01:19 PM
Math
Emeritus
Sci Advisor
Thanks
PF Gold
P: 39,363
Transforming a 3D vector using matrix

Assuming that you are writing V as a row matrix, yes, swapping "row" and "column" is purely a matter of convention.
Gajan
#5
Feb19-09, 05:46 AM
P: 3
Thanking you. I understand it now.


Register to reply

Related Discussions
Diagonal Matrix from vector Linear & Abstract Algebra 8
Transforming a 4x4 matrix from one base to another Linear & Abstract Algebra 3
Transforming base vectors in Matrix. General Math 11
Matrix/Vector differentiation Calculus & Beyond Homework 1
Matrix associated to a vector (how?) Quantum Physics 6