190 likes | 338 Vues
3-D Mathematical Preliminaries & Transformations. Coordinate Systems. Given a point P 1 and a vector V = [x v , y v , z v ] x = x 1 + t x v , y = y 1 + t y v , z = z 1 + t z v COMPACT FORM: L = P 1 + t[P 2 - P 1 ] or L = P 1 + Vt.
E N D
Given a point P1 and a vector V = [xv, yv, zv] x = x1 + t xv, y = y1 + t yv , z = z1 + t zv COMPACT FORM: L = P1 + t[P2 - P1] or L = P1 + Vt Parametric Definition of a Line Given two points P1 = (x1, y1, z1), P2 = ( x2, y2, z2) x = x1 + t (x2 - x1) y = y1 + t (y2 - y1) z = z1 + t (z2 - z1) t > 1 t = 1 t = 0 P2 t < 0 P1
Have length and direction V = [xv, yv, zv] Length is given by the Euclidean Norm ||V|| = sqrt( xv2+ yv2+ zv2) Dot Product V•U = [xv, yv, zv] • [xu, yu, zu] = xvxu + yvyu + zvzu = ||V|| ||U|| cos ß Cross Product V x U = [vyuz - vzuy, -vxuz + vzux, vxuy - vyux] V x U = - ( U x V) Direction of resulting vector depends on coordinate system and order of vectors. 3-D Vectors
To derive equation of the plane given three points: P1, P2, P3 [ P3 - P1] x [ P2 - P1] = N, orthogonal vector Given a general point P = (x,y,z) N • [P - P1] = 0 if P is in the plane. Derivation of Plane Equation Or given a point (x,y,z) in the plane and normal vector N then N • [x,y,z] = -D
Ax + By + Cz + D = 0 Alternate Form: A'x + B'y + C'z +D' = 0 where A' = A/d, B' = B/d, C' = C/d, D' = D/d d = sqrt(A2 + B2 + C2) Distance between a point and the plane is given by A'x + B'y + C'z +D' (sign indicates which side) Given Ax + By + Cz + D = 0 Then [A, B, C] is a normal vector Pf: Given two point P1 and P2 in the plane, the vector [ P2 - P1] is in the plane and [A,B, C] • [ P2 - P1] = (Ax2 + By2 +Cz2) - (Ax1 + B y1 + Cz1) = ( - D ) - ( - D ) = 0 Equation of a plane
•Translation •Scale •Rotation •Shear Basic Transformations
[T][P] = (x + tx, y + ty, z + tz) (1 0 0 tx) (x) (0 1 0 ty) (y) (0 0 1 tz ) (z) (0 0 0 1 ) (1) T P Translation in Homogeneous Coordinates
[S][P] = (sxx, syy, szz) (sx 0 0 0) (x) (0 sy 0 0) (y) (0 0 sz 0) (z) (0 0 0 1) (1) Note: A scale may also translate an object! Scale
Positive Rotations are defined as follows Axis of rotation is Direction of positive rotation is y to z z to x x to y Rotations
About the z axis Rz(ß) P = (cosß -sinß 0 0) (x) (sinß cosß 0 0) (y) (0 0 1 0) (z) (0 0 0 1) (1) About the x axis Rx(ß) P = (1 0 0 0) (x) (0 cosß -sinß 0) (y) (0 sinß cosß 0) (z) (0 0 0 1) (1) About the y axis Ry(ß) P = ( cosß 0 sinß 0) (x) (0 1 0 0) (y) (-sinß 0 cosß 0) (z) (0 0 0 1) (1) Rotations
xy Shear SHxyP = (1 0 shx 0) (x) (0 1 shy 0) (y) (0 0 1 0) (z) (0 0 0 1) (1) Shears
A Rotation ΦAbout An Arbitrary Axis P2 Z P1 Y X
A Rotation ΦAbout An Arbitrary Axis 1. Translate one end of the axis to the origin [P2-P1] = [ u1, u2, u3] Z P2 Y P1 X
a = sqrt(u12 + u32) b = sqrt(u12 + u22) c = sqrt(u22 + u32) cosß = u3/a sinß = u1/a A Rotation ΦAbout An Arbitrary Axis 1. Translate one end of the axis to the origin [P2-P1] = [ u1, u2, u3] Z U c u3 Y a ß u2 b u1 X
2. Rotate the coordinate axes about the y-axis an angle -ß Z U Z a U c u3 a Y ß µ Y u2 u2 b u1 X X After Ry(-ß), U lies in the y-z plane
U Z µ Y X 3. Rotate the coordinate axes about the x-axis through an angle µ to align the z-axis with U U Z Rx(µ) cos µ = a/ ||u|| Y After Rx(µ), U lies on the z-axis X
4 . When U is aligned with the z-axis, apply the original rotation, Φ, about the z-axis. 5. Apply the inverses of the transformations in reverse order.
[T-1][Ry(ß)][Rx(-µ)][Rz(Φ)][Rx(µ)][Ry(-ß)][T][P] A Rotation Φ About an Arbitrary Axis Note: P = 3D Point T-1 = opposite translate from T [ ] = matrix