Inverse Matrix (T ranslation) Given a matrix M , find the matrix M -1 that reverses the transformation original transformation: p’ = M*p inverse transformation: p = M -1 *p’ = M -1 *(M*p) = (M -1 *M)*p = I*p Note that M -1 *M = M*M -1 = I .
Inverse Matrix (T ranslation) Given a translation matrix T , find the matrix T -1 that reverses the transformation original transformation: p’ = T*p inverse transformation: p = T -1 *p’ = T -1 *(T*p) = (T -1 *T)*p = I*p Need a matrix T -1 such that T -1 *T = I if we translated by (dx, dy) , need to translate back by (?, ?) to cancel 1 0 dx ? ? ? T T -1 0 1 dy ? ? ? 0 0 1 ? ? ? Check that T -1 *T = T*T -1 = I .
Inverse Matrix (T ranslation) Given a translation matrix T, find the matrix T -1 that reverses the transformation original transformation: p’ = T*p inverse transformation: p = T -1 *p’ = T -1 *(T*p) = (T -1 *T)*p = I*p Need a matrix T -1 such that T -1 *T = I if we translated by (dx, dy) , need to translate back by (-dx, -dy) to cancel 1 0 dx 1 0 -dx T T -1 0 1 dy 0 1 -dy 0 0 1 0 0 1 Check that T -1 *T = T*T -1 = I .
Inverse Matrix (Scaling) Given a scaling matrix S , find the matrix S -1 that reverses the transformation original transformation: p’ = S*p inverse transformation: p = S -1 *p’ = S -1 *(S*p) = (S -1 *S)*p = I*p Need a matrix S -1 such that S -1 *S = I if we scaled by (sx, sy) , need to scale back by (?, ?) to cancel sx 0 0 ? ? ? S S -1 0 sy 0 ? ? ? 0 0 1 ? ? ? Check that S -1 *S = S*S -1 = I .
Inverse Matrix (Scaling) Given a scaling matrix S , find the matrix S -1 that reverses the transformation original transformation: p’ = S*p inverse transformation: p = S -1 *p’ = S -1 *(S*p) = (S -1 *S)*p = I*p Need a matrix S -1 such that S -1 *S = I if we scaled by (sx, sy) , need to scale back by (1/sx, 1/sy) to cancel sx 0 0 1/sx 0 0 S S -1 0 sy 0 0 1/sy 0 0 0 1 0 0 1 Check that S -1 *S = S*S -1 = I .
Inverse Matrix (Rotation) Given a rotation matrix, R , find the matrix, R -1 that reverses the transformation original transformation: p’ = R*p inverse transformation: p = R -1 *p’ = R -1 *(R*p) = (R -1 *R)*p = I*p Need a matrix R -1 such that R -1 *R = I which is easy to find if we rotated by angle φ , need to rotate back by angle ? to cancel cosφ -sinφ 0 ? ? ? R R -1 sinφ cosφ 0 ? ? ? 0 0 1 ? ? ? Check that R -1 *R = R*R -1 = I .
Inverse Matrix (Rotation) Given a rotation matrix, R , find the matrix, R -1 that reverses the transformation original transformation: p’ = R*p inverse transformation: p = R -1 *p’ = R -1 *(R*p) = (R -1 *R)*p = I*p Need a matrix R -1 such that R -1 *R = I which is easy to find if we rotated by angle φ , need to rotate back by angle - φ to cancel cosφ -sinφ 0 cos-φ -sin-φ 0 R R -1 sinφ cosφ 0 sin-φ cos-φ 0 0 0 1 0 0 1 Check that R -1 *R = R*R -1 = I .
Inverse Matrix (Rotation) It turns out that inverse of a rotation matrix is easier to find. So far we have cosφ -sinφ 0 cos-φ -sin-φ 0 R R -1 sinφ cosφ 0 sin-φ cos-φ 0 0 0 1 0 0 1 By the properties of sin/cos we have cosφ = cos(-φ) sinφ φ sinφ = - sin(-φ) -φ sin(-φ) cosφ sinφ 0 = R T R -1 -sinφ cosφ 0 0 0 1 Transposing the rows and columns in the original matrix R , creates the inverse R -1 .
Inverse for Special Orthogonal The reason R T = R -1 is that the rotation matrix R is special orthogonal ● every row vector is unit vector (length 1) cosφ - sinφ 0 r i *r i = 1 R ● every pair of row vectors is perpendicular sinφ cosφ 0 r i *r j = 0 (i≠j) 0 0 1 If each row in R is viewed as a vector then dot products of these vectors are r 1 = (cosφ, -sinφ, 0) r 1 *r 1 = r 2 *r 2 = r 3 *r 3 = 1, len 1 r 2 = (sinφ, cosφ, 0) r 1 *r 2 = r 1 *r 3 = r 2 *r 3 = 0, perp. r 3 = (0, 0, 1) cosφ - sinφ 0 cosφ sinφ 0 1 0 0 Thus computing R*R T involves computing * = sinφ cosφ 0 -sinφ cosφ 0 0 1 0 dot products 1 or 0 0 0 1 0 0 1 0 0 1 R*R T = I r 1 * r 1 =1 r 1 * r 2 =0 r 1 * r 3 =0
Inverse for Special Orthogonal In general if M is special orthogonal then M T = M -1 u 1 u 2 u 3 u 1 v 1 w 1 M M T v 1 v 2 v 3 u 2 v 2 w 2 w 1 w 2 w 3 u 3 v 3 w 3 If each row in R is viewed as a vector then dot products of these vectors are u = (u 1 , u 2 , u 3 ) u*u = v*v = w*w = 1, len 1 v = (v 1 , v 2 , v 3 ) u*v = u*w = v*w = 0, perp. w = (w 1 , w 2 , w 3 ) u 1 u 2 u 3 u 1 v 1 w 1 1 0 0 Thus computing M*M T involves computing v 1 v 2 v 3 u 2 v 2 w 2 * = 0 1 0 dot products 1 or 0 w 1 w 2 w 3 u 3 v 3 w 3 0 0 1 M*M T = I u * u=1 u*v=0 u * w=0
Rotation Revisited What is the effect of a rotation matrix R on the main axes x=(1,0) and y=(0,1) cosφ -sinφ 0 1 cosφ = x=(1,0) rotated to x'=(cosφ,sinφ) * sinφ cosφ 0 0 sinφ i.e. x rotated to first column of R 0 0 1 1 1 cosφ -sinφ 0 0 -sinφ = y=(0,1) rotated to y'=(-sinφ,cosφ) * i.e. sinφ cosφ 0 1 cosφ y rotated to second column of R 0 0 1 1 1
Rotation Revisited (2D) u P Given pitch u and location P what transformation will lead to target configuration
Rotation Revisited (2D) u P Given pitch u and location P what transformation will lead to target configuration We should first rotate (to orient the plane) and then translate u u P
Rotation Revisited (2D) We should first rotate to orient the plane u φ The angle φ can be found using the dot product (compute u*x in two ways) (assuming u is unit vector; x=(1,0) is unit) u*x = |u|*|x|*cos φ = cos φ u*x = u x *1 + u y *0 = u x (so u x = cosφ and therefore φ = ? ) But we can find the rotation matrix R without using trig. operations.
Rotation Revisited (2D) We should first rotate to orient the plane u y v x We can find the rotation matrix R by noting where the axes x and y go under R x=(1,0) goes to u y=(0,1) goes to v v is perpendicular to u , so v=(-u y ,u x ) Then just place the coordinates of u and v in the columns of R (see slide 7) u x v x u x -u y 0 0 = R u y v y u y u x 0 0 0 0 1 0 0 1
Rotation Revisited (2D) u P Given pitch u and location P what transformation will lead to target configuration We should first rotate (to orient the plane) and then translate p x u x -u y 1 0 0 * * p y u y u x 0 1 0 0 0 1 0 0 1 translate the plane rotate the plane
Rotation Revisited (3D) u P w Given pitch u , roll w , location P what transformation will lead to target configuration
Rotation Revisited (3D) u P w Given pitch u , roll w , location P what transformation will lead to target configuration We should first rotate (to orient the plane) and then translate u P u w w
Rotation Revisited (3D) We should first rotate to orient the plane v v u w We can find the rotation matrix R by noting where the axes x , y , z go under R x=(1,0,0) goes to u y=(0,1,0) goes to v v perpendicular to u , w so v=w x u z=(0,0,1) goes to w Then just place the coordinates of u,v,w in the columns of R (see slide 7) u x v x w x 0 u,w given u y v y w y R 0 u z v z w z 0 v=w x u 0 0 0 1
Rotation Revisited (3D) Given pitch u , roll w , location P what transformation will lead to target configuration We should first rotate (to orient the plane) and then translate u v=w x u P w u w then translate first rotate p x u x v x w x 1 0 0 0 p y 0 1 0 u y v y w y 0 * 1 * p z 0 0 1 u z v z w z 0 0 0 0 1 0 0 0
Coordinate Systems Transformation Consider a special orthogonal matrix M u*u = v*v = w*w = 1 u x v x w x u*v = u*w = v*w = 0 M u y v y w y u z v z w z What is the effect of M on the main axes x=(1,0,0) y=(0,1,0) z=(0,0,1) M * x = ? u x v x w x 1 M * y = ? u y v y w y 0 M * z = ? u z v z w z 0
Coordinate Systems Transformation Consider a special orthogonal matrix M u*u = v*v = w*w = 1 u x v x w x u*v = u*w = v*w = 0 M u y v y w y u z v z w z What is the effect of M on the main axes x=(1,0,0) y=(0,1,0) z=(0,0,1) M * x = (u x ,u y ,u z ) v=(vx,vy,vz) M * y = (v x ,v y ,v z ) u=(ux,uy,uz) M * z = (w x ,w y ,w z ) rotates the world, i.e. changes world to new coordinate system w=(wx,wy,wz)
Coordinate Systems Transformation Consider a special orthogonal matrix M and its transpose M T u x v x w x u x u y u z u*u = v*v = w*w = 1 M T M u y v y w y v x v y v z u*v = u*w = v*w = 0 u z v z w z w x w y w z What is the effect of M T on the axes u=(u x ,u y ,u z ) v=(v x ,v y ,v z ) w=(w x ,w y ,w z ) M * u = ? u x u y u z u x M * v = ? v x v y v z u y M * w = ? w x w y w z u z
Coordinate Systems Transformation Consider a special orthogonal matrix M and its transpose M T u x v x w x u x u y u z u*u = v*v = w*w = 1 M T M u y v y w y v x v y v z u*v = u*w = v*w = 0 u z v z w z w x w y w z What is the effect of M T on the axes u=(u x ,u y ,u z ) v=(v x ,v y ,v z ) w=(w x ,w y ,w z ) M T =M -1 M * u = (1,0,0) v=(vx,vy,vz) M * v = (0,1,0) M * w = (0,0,1) u=(ux,uy,uz) rotates world, aligns new coordinate system with primary (the inverse effect of M ) w=(wx,wy,wz)
Rotation around arbitrary axis P'(x',y',z') A(ax,ay,az) α P(x,y,z) can reduce to rotation around z -axis by realignment of coordinate system
Rotation around arbitrary axis A(ax,ay,az) P(x,y,z)
Rotation around arbitrary axis compute A',A” s.t. A,A',A” perpend. A(ax,ay,az) A(ax,ay,az) P(x,y,z) P(x,y,z) A”(ax”,ay”,az”) A'(ax',ay',az')
Recommend
More recommend