/** a simple isometric graphic by guru */ void setup() { size(300,300); smooth(); textFont(loadFont("FreeMono-24.vlw")); } void draw() { pushMatrix(); translate( width/2, height/2 ); scale( 1, 0.5 ); rotate( radians( 45 ) ); translate( -width/2, -height/2 ); background(255); noFill(); stroke(0); strokeWeight(2); isoLine( new PVector( 100,100,0 ), new PVector(100,200,0)); isoLine( new PVector( 100,200,0 ), new PVector(200,200,0)); isoLine( new PVector( 200,200,0 ), new PVector(200,100,0)); isoLine( new PVector( 200,100,0 ), new PVector(100,100,0)); fill(0); textSize(24); isoText( "ISO TEST", new PVector(80, 70, 50 )); isoLine( new PVector( 100,100,50 ), new PVector(100,200,50)); isoLine( new PVector( 100,200,50 ), new PVector(200,200,50)); isoLine( new PVector( 200,200,50 ), new PVector(200,100,50)); isoLine( new PVector( 200,100,50 ), new PVector(100,100,50)); isoLine( new PVector( 80,80,50 ), new PVector(80,220,50)); isoLine( new PVector( 80,220,50 ), new PVector(220,220,50)); isoLine( new PVector( 220,220,50 ), new PVector(220,80,50)); isoLine( new PVector( 220,80,50 ), new PVector(80,80,50)); stroke(128); strokeWeight(0.5); isoLine( new PVector( 100,100,0), new PVector( 100,100,50 )); isoLine( new PVector( 100,200,0), new PVector( 100,200,50 )); isoLine( new PVector( 200,200,0), new PVector( 200,200,50 )); isoLine( new PVector( 200,100,0), new PVector( 200,100,50 )); popMatrix(); } void isoLine( PVector p1, PVector p2 ) { line( p1.x - p1.z, p1.y - p1.z, p2.x - p2.z, p2.y - p2.z ); } void isoText( String s, PVector pos ) { text( s, pos.x - pos.z, pos.y - pos.z ); }