AT&T Home | AT&T Labs | Research
AT&T Labs, Inc. - Research

The Yoix® Scripting Language

Home | What's New | Grammar | Documentation | Download | License | YChart | YDAT | YWAIT | Byzgraf | FAQs
dtransform (Number dx, Number dy) typedict.Matrix
dtransform (Dimension d)  
 
Uses this matrix to transform the displacement
(dx, dy)
to the corresponding displacement,
(sx*dx + shx*dy, sy*dy + shy*dx)
which are stored in the width and height fields of the Dimension returned by dtransform. When dtransform is called with one argument the transformation is applied to the displacement
(d.width, d.height)
and the result is returned in the width and height fields of a new Dimension.

The values of sx, shx, sy, and shy used in the transformation are the obtained directly from this matrix. We often refer to this as a transformation from "user space" to "device space", despite the fact that the transformed displacement may not have anything to do with a physical device, like your screen.
 
 Example:   Although not normally recommended, here is a small program,
import yoix.*.*;

Dimension res = VM.screen.defaultmatrix.dtransform(72, 72);

JFrame f = {
    Graphics graphics = {
        Matrix CTM = new Matrix;
    };

    paint(Rectangle rect) {
        graphics.rectfill(50, 150, 2*res.width, 50);
    }
};

f.visible = TRUE;
that works in pixels, because graphics.CTM is the identity matrix, but can also draw in inches because it knows your screen's resolution. The rectangle will always be 2 inches wide, but its height and position are device dependent.
 
 Return:   Dimension
 
 See Also:   concat, concatmatrix, currentmatrix, dividematrix, Graphics, identmatrix, idtransform, initmatrix, invertmatrix, itransform, maptopixel, rotate, scale, setmatrix, shear, transform, translate

 

Yoix is a registered trademark of AT&T Inc.