# isometricProjection.frink

``` /** This contains routines to derive equations for isometric projection.     See: https://en.wikipedia.org/wiki/Isometric_projection */ use Matrix.frink symbolicMode[true] t1 = new Matrix[[[sqrt, 0, -sqrt],                  [1,       2,     1   ],                  [sqrt, -sqrt, sqrt]]] c = new Matrix[([ax, ay, az]).transpose[]] d = t1.multiply[c].multiplyByScalar[1/sqrt] println[d.formatMatrix[]] bt = new Matrix[[[1,0,0], [0,1,0], [0,0,0]]] f = bt.multiply[d] println[f.formatMatrix[]] // All of this comes out to: // bx = sqrt (ax - az) // by = sqrt[1/6] (ax + 2 ay + az) // bz = sqrt (ax - ay + az)    //     (There really isnt' a z but if you want to color code it) // The minima and maxima are: // min bx = sqrt (axmin - azmax) // max bx = sqrt (axmax - azmin) // min by = sqrt[1/6] (axmin + 2 aymin + azmin) // max by = sqrt[1/6] (axmax + 2 aymax + azmax) // min bz = sqrt (axmin - aymax + azmin) // max bz = sqrt (axmax - aymin + azmax) // Or, inverted, // ay = -ax + bx/(2*Sqrt) + Sqrt[3/2]*by // az = ax - bx/Sqrt```

This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 19092 days, 8 hours, 43 minutes ago.