1 import java.applet.*; 2 import java.awt.*; 3 import JSci.maths.chaos.*; 4 5 10 public final class CatTransform extends Applet implements Runnable { 11 private CatMap cm; 12 private double p1[],p2[],p3[],p4[]; 13 private Thread thr; 14 private int xScale,yScale; 15 private int p1x,p1y,p2x,p2y,p3x,p3y,p4x,p4y; 16 private int iteration; 17 public void init() { 18 cm=new CatMap(); 19 p1=new double[2]; 20 p2=new double[2]; 21 p3=new double[2]; 22 p4=new double[2]; 23 p1[0]=0.1;p1[1]=0.1; 24 p2[0]=0.9;p2[1]=0.1; 25 p3[0]=0.9;p3[1]=0.9; 26 p4[0]=0.1;p4[1]=0.9; 27 xScale=getSize().width; 28 yScale=getSize().height; 29 iteration=0; 30 } 31 public void start() { 32 if(thr==null) 33 thr=new Thread (this); 34 thr.start(); 35 } 36 public void stop() { 37 thr=null; 38 } 39 private int dataToScreenX(double x) { 40 return (int)Math.round(x*xScale); 41 } 42 private int dataToScreenY(double y) { 43 return (int)Math.round(y*yScale); 44 } 45 public void run() { 46 while(thr==Thread.currentThread()) { 47 p1x=dataToScreenX(p1[0]); 48 p1y=dataToScreenY(p1[1]); 49 p2x=dataToScreenX(p2[0]); 50 p2y=dataToScreenY(p2[1]); 51 p3x=dataToScreenX(p3[0]); 52 p3y=dataToScreenY(p3[1]); 53 p4x=dataToScreenX(p4[0]); 54 p4y=dataToScreenY(p4[1]); 55 repaint(); 56 try { 57 Thread.sleep(200); 58 } catch(InterruptedException e) {} 59 p1=cm.map(p1); 60 p2=cm.map(p2); 61 p3=cm.map(p3); 62 p4=cm.map(p4); 63 iteration++; 64 } 65 } 66 public void paint(Graphics g) { 67 showStatus("Iteration = "+iteration); 68 g.drawLine(p1x,p1y,p2x,p2y); 69 g.drawLine(p2x,p2y,p3x,p3y); 70 g.drawLine(p3x,p3y,p4x,p4y); 71 g.drawLine(p4x,p4y,p1x,p1y); 72 } 73 } 74 75 | Popular Tags |