import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.zip.*; public class arbor_2 extends BApplet { float ymag,xmag=0; float newYmag,newXmag=0; int mod=0; void setup() { size(600, 400); //background(0); colorMode(RGB, 255); background(230, 230, 230); } void loop(){ translate(width/2, height/2); newXmag = mouseX/(float)(width) * TWO_PI; newYmag = mouseY/(float)(height) * TWO_PI; float diff = xmag-newXmag; if (abs(diff) > 0.01f) { xmag -= diff/4.0f; } diff = ymag-newYmag; if (abs(diff) > 0.01f) { ymag -= diff/4.0f; } rotateX(ymag); rotateY(xmag); mod=height-mouseY; translate(0,-mod); float dd=((mouseX-width/2)*0.0005f); drawL(mod,true,1-dd); } void drawL (int lung, boolean start,float coef){ if (start){ push(); line(0,0,0,lung); pop(); lung=(int)(lung/2); drawL(lung,false,coef); } else { push(); translate(0,lung*2); push(); rotateZ(TWO_PI/coef); line(0,0,0,lung); if(lung>5){ drawL(lung/2,false,coef); } pop(); push(); rotateZ(TWO_PI/-coef); line(0,0,0,lung); if(lung>5){ drawL(lung/2,false,coef); } pop(); push(); rotateX(TWO_PI/coef); line(0,0,0,lung); if(lung>5){ drawL(lung/2,false,coef); } pop(); push(); rotateX(TWO_PI/-coef); line(0,0,0,lung); if(lung>5){ drawL(lung/2,false,coef); } pop(); pop(); } } }