import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; public class hilbtsp extends java.applet.Applet{ Color col1,col2,col3; double piaw=3.14159265358979; double dblBasD; int Naw; int takaaw,habaaw; int kaw,iaw,jaw; int gintQNum; int gintQ[]=new int[100]; int gintQ2[]=new int[100]; String NS,habaS,takaS; double Nd,takad,habad; double dblKoushiX[]=new double[10000]; double dblKoushiY[]=new double[10000]; int intKoushiP; double dblOldSuperX,dblOldSuperY,dblNewSuperX,dblNewSuperY; public double dou(String dous){ double dou1; dou1 = (Double.valueOf(dous)).doubleValue(); return dou1; } public double randaw(){ double rand1aw; rand1aw=Math.random(); return rand1aw; } public double d(double d1,double d2,double d3,double d4){ double dw; dw=Math.pow(Math.pow(d3-d1,2.0)+Math.pow(d4-d2,2.0),0.5); return dw; } public void init(){ col1=Color.black; col2=Color.yellow; col3=Color.blue; takaS=getParameter("takap"); habaS=getParameter("habap"); NS=getParameter("Np"); habad=dou(habaS); takad=dou(takaS); Nd=dou(NS); if(Nd==6){ Nd=4+16*randaw(); } habaaw=(int)habad; takaaw=(int)takad; Naw=(int)Nd; } public double jou(double aaw,double baw){ double jou1aw; jou1aw=Math.pow(aaw,baw); return jou1aw; } public double artnaw(double ataw){ double artn1aw; artn1aw=Math.atan(ataw); return artn1aw; } public double sainaw(double saiaw){ double sain1aw; sain1aw=Math.sin(saiaw); return sain1aw; } public int fintE0j(int j){ int inttempf; int i; inttempf=0; for(i=1;i<=j-1;i++){ if(gintQ[i]==0){ inttempf=inttempf+1; } }//i inttempf=(inttempf % 2); return inttempf; }//fintE0j public int fintE3j(int j){ int inttempf; int i; inttempf=0; for(i=1;i<=j-1;i++){ if(gintQ[i]==3){ inttempf=inttempf+1; } }//i inttempf=(inttempf % 2); return inttempf; }//fintE3j public int fintDj(int j){ int inttempf; inttempf=((fintE0j(j)+fintE3j(j)) % 2); return inttempf; }//fintE3j public double fdblCalcx(){ double dbltempf; int j; dbltempf=0.0; for(j=1;j<=gintQNum;j++){ if(gintQ[j]!=0){ dbltempf=dbltempf+(300.0/jou(2.0,j))*jou(-1.0,fintE0j(j))*((1.0-fintDj(j))*gintQ[j]-1.0); }//gintQ(j)!=0 }//j return dbltempf; }//fCalcx public double fdblCalcy(){ double dbltempf; int j; dbltempf=0.0; for(j=1;j<=gintQNum;j++){ if(gintQ[j]!=0){ dbltempf=dbltempf+(300.0/jou(2.0,j))*jou(-1.0,fintE0j(j))*(1.0-fintDj(j)*gintQ[j]); }//gintQ(j)!=0 }//j return dbltempf; }//fCalcy public void sDecOrder(int inti[]){ int k,j,l; int intlabel[]=new int[100]; intlabel[1]=0; intlabel[2]=0; intlabel[3]=0; intlabel[4]=0; intlabel[5]=0; intlabel[6]=0; intlabel[7]=0; for(j=1;j<=gintQNum;j++){ gintQ[j]=inti[gintQ2[j]]; // gintQ[j]=inti[j]; }//j } public void calckoushi(){ double mind,dd; int mink,j; mind=99999.9; mink=0; for(j=0;j1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); for(j=0;j1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); } for(j=0;j1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); } dblOldSuperX=dblNewSuperX; dblOldSuperY=dblNewSuperY; }//intOrder==5 }//intorder==4 }//inti4 if(intOrder==4){ calckoushi(); if(dblOldSuperX>1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); } dblOldSuperX=dblNewSuperX; dblOldSuperY=dblNewSuperY; }//intOrder==4 }//intorder==3 }//inti3 if(intOrder==3){ calckoushi(); if(dblOldSuperX>1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); } dblOldSuperX=dblNewSuperX; dblOldSuperY=dblNewSuperY; }//intorder==3 }//intOrder==2 }//inti2 if(intOrder==2){ calckoushi(); if(dblOldSuperX>1.0){ // g.setColor(col3); g.drawLine((int)dblOldSuperX,350-(int)dblOldSuperY,(int)dblNewSuperX,350-(int)dblNewSuperY); } dblOldSuperX=dblNewSuperX; dblOldSuperY=dblNewSuperY; }//intOrder==2 }//intOrder==1 }//inti1 heapv(dblw,dblx,dbly,intN); g.setColor(col2); g.drawOval((int)dblx[0]-2,(int)dbly[0]-2,4,4); g.drawRect((int)dblx[0]-4,(int)dbly[0]-4,8,8); for(j=1;j