KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > CatTransform


1 import java.applet.*;
2 import java.awt.*;
3 import JSci.maths.chaos.*;
4
5 /**
6 * Cat map transforms.
7 * @author Mark Hale
8 * @version 1.2
9 */

10 public final class CatTransform extends Applet implements Runnable JavaDoc {
11         private CatMap cm;
12         private double p1[],p2[],p3[],p4[];
13         private Thread JavaDoc 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 JavaDoc(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 JavaDoc 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