| Scaling (geometry) |
Article Index for Scaling |
Information AboutScaling (geometry) |
|
More general is scaling with a separate scale factor for each axis direction; a special case is '''directional scaling''' (in one direction). Shape s may change; e.g. a rectangle may change into a rectangle of a different shape, but also in a parallelogram (the angles between lines parallel to the axes are preserved, but not all angles). A scaling can be represented by a scaling matrix. To scale an object by a Vector ''v'' = (''vx, vy, vz''), each point ''p'' = (''px, py, pz'') would need to be multiplied with this scaling matrix: : As shown below, the multiplication will give the expected result: : Such a scaling changes the Diameter of an object by a factor between the scale factors, the Area by a factor between the smallest and the largest product of two scale factors, and the Volume by the product of all three. A scaling in the most general sense is any Affine Transformation with a Diagonalizable Matrix . It includes the case that the three directions of scaling are not perpendicular. It includes also the case that one or more scale factors are equal to zero ( Projection ), and the case of one or more negative scale factors. The latter corresponds to a combination of scaling proper and a kind of reflection: along lines in a particular direction we take the reflection in the point of intersection with a plane that need not be perpendicular; therefore it is more general than ordinary reflection in the plane. Often, it is more useful to use Homogeneous Coordinates , since Translation cannot be accomplished with a 3-by-3 matrix. To scale an object by a Vector ''v'' = (''vx, vy, vz''), each Homogeneous vector ''p'' = (''px, py, pz'', 1) would need to be multiplied with this scaling matrix: : As shown below, the multiplication will give the expected result: : The scaling is uniform Iff the scaling factors are equal. If all scale factors except one are 1 we have directional scaling. Since the last component of a homogeneous coordinate can be viewed as the denominator of the other three components, a scaling by a common factor ''s'' can be accomplished by using this scaling matrix: : For each Homogeneous vector ''p'' = (''px, py, pz'', 1) we would have : which would be homogenized to : |