Thread Closed

Transforming a 3D vector using matrix

 
Share Thread Thread Tools
Feb18-09, 05:13 AM   #1
 

Transforming a 3D vector using matrix


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
 
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Front-row seats to climate change
>> Attacking MRSA with metals from antibacterial clays
>> New formula invented for microscope viewing, substitutes for federally controlled drug
Feb18-09, 06:36 AM   #2
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Retired Staff Staff Emeritus
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.
 
Feb18-09, 07:40 AM   #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?
 
Feb18-09, 01:19 PM   #4
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Retired Staff Staff Emeritus

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.
 
Feb19-09, 05:46 AM   #5
 
Thanking you. I understand it now.
 
Thread Closed

Tags
matrix, transformation, vector
Thread Tools


Similar Threads for: Transforming a 3D vector using matrix
Thread Forum Replies
Diagonal Matrix from vector Linear & Abstract Algebra 4
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