import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.awt.geom.*; import java.math.*; public class ComputeFoliation implements Runnable { Manager M; int halt; public ComputeFoliation() { } public ComputeFoliation(Manager MM) { this.M=MM; } public void run() { } public static GeneralPath getFoliation(int TYPE,int PARITY,int DIRECTION,double y,int range) { int count=0; GeneralPath gp=new GeneralPath(); double phi=(1+Math.sqrt(5))/2; double y0=1.5-.5*y; if(PARITY==1) y0=y0+1; int range0=-range; int range1=range; if(DIRECTION==0) range0=0; if(DIRECTION==1) range1=0; for(int k=-4;k<=4;k=k+2) { for(int i=range0;i<=range1;++i) { double y1=y0-phi/2; double y2=y0+phi/2; y1=y1+i*phi; y1=y1-2*Math.floor(y1/2); y2=y1+phi; if(i!=0) { gp.moveTo(0,(float)(y1+k)); gp.lineTo(2,(float)(y2+k)); } if((i==0)&&(DIRECTION==0)) { gp.moveTo((float)(1),(float)(y0+k)); gp.lineTo(2,(float)(y0+phi/2+k)); } if((i==0)&&(DIRECTION==1)) { gp.moveTo((float)(1),(float)(y0+k)); gp.lineTo(0,(float)(y0-phi/2+k)); } }} return(gp); } }