# 3D Transformations Assist. Prof. Dr. Ahmet Sayar

There are copies: 1
Computer Graphics: 3D Transformations

## Presentation on theme: "3D Transformations Assist. Prof. Dr. Ahmet Sayar"— Presentation transcript:

3D Transformations Assist. Prof. Dr. Ahmet Sayar
Computer Engineering Department Computer Graphics Course Kocaeli University Fall 2012

Extending From 2d Approach
Methods for geometric transformations in three dimensions are extended from two-dimensional methods by including considerations for the z coordinate. A three-dimensional position, expressed in homogeneous coordinates, is represented as a four-element column vector. Thus , each geometric transformation operator is now 4 by 4 matrix.

Translation

Rotation: z-axis rotation
3D Coordinate-Axis Rotations z-axis rotation (counter-clockwise)

Rotation: x-axis rotation
counter-clockwise

Rotation: y-axis rotation
counter-clockwise

Scaling Change the coordinates of the object by scaling factors. y x z

Scaling with respect to a Fixed Point
Translate to origin, scale, translate back y x y y y x x x z z z z Translate Scale Translate back

Scaling with respect to a Fixed Point

Reflection Reflection over planes, lines or points y y y y x x x x z z

Shear Deform the shape depending on another dimension

1. Rotation Around a Parallel Axis
Translate the object so that the rotation axis coincides with the parallel coordinate axis Perform the specified rotation about that axis Translate the object so that rotation axis is moved back to its original A coordinate position P is transformed with the sequence -1

Rotation Around a Parallel Axis
Rotating the object around a line parallel to one of the axes: Translate to axis, rotate, translate back. y y y y x x x x z z z z Translate Rotate Translate back

2. Rotation Around an Arbitrary Axis
In this case, we also need rotation to align the rotation axis with a selected coordinate axis and then to bring the rotation axis back to its original orientation A rotation axis can be defined with two coordinate position, or one position and direction angles. Now we assume that the rotation axis is defined by two points, and that the direction of rotation is to be counter clockwise when looking along the axis from p2 to p1.

Rotation Around an Arbitrary Axis
Translate the object so that the rotation axis passes though the origin Rotate the object so that the rotation axis is aligned with one of the coordinate axes Make the specified rotation Reverse the axis rotation Translate back x z

Rotation Around an Arbitrary Axis

Rotation Around an Arbitrary Axis
u is the unit vector along V: First step: Translate P1 to origin: Next step: Align u with the z axis we need two rotations: rotate around x axis to get u onto the xz plane, rotate around y axis to get u aligned with z axis.

Rotation Around an Arbitrary Axis
Align u with the z axis 1) rotate around x axis to get u into the xz plane, 2) rotate around y axis to get u aligned with the z axis y y u α x x u β z z

No need to study Advanced Topics
BACKUP Slides No need to study Advanced Topics

Rotation Around an Arbitrary Axis
Align u with the z axis 1) rotate around x axis to get u into the xz plane, 2) rotate around y axis to get u aligned with the z axis y y y u u u' α α x x x u uz β z z z

Dot product and Cross Product
v dot u = vx * ux + vy * uy + vz * uz. That equals also to |v|*|u|*cos(a) if a is the angle between v and u vectors. Dot product is zero if vectors are perpendicular. v x u is a vector that is perpendicular to both vectors you multiply. Its length is |v|*|u|*sin(a), that is an area of parallelogram built on them. If v and u are parallel then the product is the null vector.

Rotation Around an Arbitrary Axis
Align u with the z axis 1) rotate around x axis to get u into the xz plane, 2) rotate around y axis to get u aligned with the z axis We need cosine and sine of α for rotation u u' α x uz z Projection of u on yz plane

Rotation Around an Arbitrary Axis
Align u with the z axis 1) rotate around x axis to get u into the xz plane, 2) rotate around y axis to get u aligned with the z axis u β x u''= (a,0,d) z