import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.geom.*; import java.math.*; public class TileComputer { /**This routine is used with the pinwheel computer**/ public static PolyWedge getTileStatic(Complex z,int N,PolyWedge Q) { PolyWedge P1=new PolyWedge(Q); PolyWedge MAIN=new PolyWedge(); Complex w=new Complex(z); double[] d=new double[2]; int v,count; double[][][] dist=initializeDistance(Q.count); PolyWedge[][][] CHOP=new PolyWedge[Q.count][2][2]; count=0; while(count<=N) { v=BilliardsMap.getGoodVertex(Q,w); MAIN=PolyWedge.makeWedge(P1,v); d[0]=Complex.distanceToLine(z,MAIN.z[0],MAIN.z[1]); d[1]=Complex.distanceToLine(z,MAIN.z[2],MAIN.z[0]); for(int i=0;i<2;++i) { if(dist[v][count%2][i]>d[i]) { dist[v][count%2][i]=d[i]; CHOP[v][count%2][i]=new PolyWedge(MAIN); } } w=BilliardsMap.nextPoint(w,Q); P1=P1.pivot(v); ++count; } MAIN=chopTile(z,CHOP,Q.count); MAIN.orbit=count; return(MAIN); } /**These are auxilliary routines called by the main one.**/ public static PolyWedge chopTile(Complex z,PolyWedge[][][] CHOP,int q) { PolyWedge Q=PolyWedge.bigSquare(z,100); PolyWedge TEMP=new PolyWedge(); for(int i=0;i