// isometric transformations // author: Danko Kozar, DKOZAR.COM //CS3 conversion Robert Sindt // transforms x,y,z coordinates into Flash x coordinate function xFla(x, y, z) { // cartesian coordinates var xCart = (x-z)*Math.cos(0.45); // flash coordinates var xI = xCart+xOrigin; return (xI); } // transforms x,y,z coordinates into Flash y coordinate function yFla(x, y, z) { // cartesian coordinates var yCart = y+(x+z)*Math.sin(0.45); // flash coordinates var yI = -yCart+yOrigin; return (yI); } // --- drawing functions -------------------------------- function style(a, b, c) { // a: line width // b: line color // c: line alpha graphics.lineStyle(a, b, c); } function plot(x, y, z) { graphics.moveTo(xFla(x, y, z), yFla(x, y, z)); } function draw(x, y, z) { graphics.lineTo(xFla(x, y, z), yFla(x, y, z)); } function box(x, y, z, a, b, c, color) { style(1, color, 100); plot(x, y, z); draw(x+a, y, z); draw(x+a, y+b, z); draw(x, y+b, z); draw(x, y, z); plot(x, y+b, z); draw(x+a, y+b, z); draw(x+a, y+b, z+c); draw(x, y+b, z+c); draw(x, y+b, z); plot(x, y, z); draw(x, y+b, z); draw(x, y+b, z+c); draw(x, y, z+c); draw(x, y, z); } function boxFilled(x, y, z, a, b, c, color, fill) { graphics.beginFill(fill); style(1, color, 100); plot(x, y, z); draw(x+a, y, z); draw(x+a, y+b, z); draw(x, y+b, z); draw(x, y, z); plot(x, y+b, z); draw(x+a, y+b, z); draw(x+a, y+b, z+c); draw(x, y+b, z+c); draw(x, y+b, z); plot(x, y, z); draw(x, y+b, z); draw(x, y+b, z+c); draw(x, y, z+c); draw(x, y, z); graphics.endFill(); } // --- initialisation -------------------------------- var xScreenSize = stage.stageWidth; var yScreenSize = stage.stageHeight; var xOrigin = xScreenSize/2; var yOrigin = yScreenSize-30; // --- main ------------------------------------------ // box (x-pos, y-pos, z-pos, x-size, y-size, z-size, frame color) // boxFiled (x-pos, y-pos, z-pos, x-size, y-size, z-size, frame color, fill color) // top box (both 87 & 0) // boxFilled(0, 87, 0, 100, 50, 100, "0xFFFFFF", "0xAAAAAA"); boxFilled(100, 0, 100, 100, 50, 100, "0xFFFFFF", "0xAAAAAA"); // right box boxFilled(100, 0, 0, 100, 50, 100, "0xFFFFFF", "0xAAAAAA"); // left box box(0, 0, 100, 100, 50, 100, "0x00FF00"); // bottom Box box(0, 0, 0, 100, 50, 100, "0x00FF00");