
Type: Enhancement

Status: Open

Priority: P4

Resolution: Unresolved

Affects Version/s: 1.4.2

Fix Version/s: None

Component/s: clientlibs

Subcomponent:

CPU:x86

OS:solaris_2.5.1
Name: js151677 Date: 09/20/2004
A DESCRIPTION OF THE PROBLEM :
The doc says :
If this transform represents a nonuniform scale or more general transform then the determinant is not likely to represent a value useful for any purpose other than determining if inverse transforms are possible.
However the value of the determinant IS useful. In fact it represents the scale factor by which an area is transformed, with a minus sign if orientation is reversed. This is true regardless of the shape (as simple as a square or as complex as you want).
This is a way to explain why a null determinant occurs only in singular transforms, it means that shapes that does have a positive area before the transform are collapsed along a line segment (or worse, collapsed into a point) by the transform and have a null area after the transform.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED 
Something like :
The value of the determinant is the signed scale factor by which area are transformed (hence null determinant transform collapse regular shapes into degenerated null area line segments or single points). The sign shows if orientation is preserved or not. If a shape with area A is transformed, the area of the transformed shape will be
Math.abs(A * transform.getDeterminant())
ACTUAL 
If this transform represents a nonuniform scale or more general transform then the determinant is not likely to represent a value useful for any purpose other than determining if inverse transforms are possible.
URL OF FAULTY DOCUMENTATION :
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/geom/AffineTransform.html#getDeterminant()
(Incident Review ID: 311213)
======================================================================