import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; import java.awt.*; public class hinearcli extends java.applet.Applet{ Point[] p = new Point[100]; Color col1,col2; int N,taka,haba,ni,nj,n; int k,i,j,l,co,minj,minj2,minj3; double di2,di,cp2,cpx,ys,t,dd,mind,mind2,mind3; double x0,y0,xx,yy,xa1=0,ya1=0,yy2,pi; double di4,di3,cp3,cpx3,ys3,t2,ds,us; double y20,y21,sa0,sa1; int br,br2,u,k2; int xz,xz2,yz,yz2,label; String NS,habaS,takaS; double Nd,takad,habad,th; Color cl[]=new Color[13]; double kx[]=new double[100]; double ky[]=new double[100]; double kz[]=new double[100]; int ncv[]=new int[100]; int cv[][]=new int[100][100]; double ei[]=new double[100]; double ej[]=new double[100]; double ed[]=new double[100]; public double dou(String dous){ double dou1; dou1 = (Double.valueOf(dous)).doubleValue(); return dou1; } public double rand(){ double rand1; rand1=Math.random(); return rand1; } public void init(){ col1=Color.black; col2=Color.pink; cl[0]=Color.white; cl[1]=Color.cyan; cl[2]=Color.green; takaS=getParameter("takap"); habaS=getParameter("habap"); NS=getParameter("Np"); habad=dou(habaS); takad=dou(takaS); Nd=dou(NS); if(Nd==20){ Nd=4+26*rand(); } haba=(int)habad; taka=(int)takad; N=(int)Nd; } double x1[]=new double[100]; double y1[]=new double[100]; int x[]=new int[100]; int y[]=new int[100]; double s[]=new double[100]; String sss[]=new String[100]; public double jou(double a,double b){ double jou1; jou1=Math.pow(a,b); return jou1; } public double arcsinaw(double atasw){ double artn1saw; artn1saw=Math.asin(atasw); return artn1saw; } public double d(double d1,double d2,double d3,double d4){ double dw; dw=jou(jou(d3-d1,2.0)+jou(d4-d2,2.0),0.5); return dw; } void heapv(double te1[],double te2[],double te3[],int NN){ int kk,kks,ii,jj,mm; double b1,b2,b3,c1,c2,c3; kks=(int)(NN/2); for(kk=kks;kk>=1;kk--){ ii=kk; b1=te1[ii-1];b2=te2[ii-1];b3=te3[ii-1]; while(2*ii<=NN){ jj=2*ii; if(jj+1<=NN){ if(te1[jj-1]=1;mm--){ c1=te1[mm];c2=te2[mm];c3=te3[mm]; te1[mm]=te1[0];te2[mm]=te2[0];te3[mm]=te3[0]; ii=1; while(2*ii<=mm){ kk=2*ii; if(kk+1<=mm){ if(te1[kk-1]<=te1[kk]){ kk++; } } if(te1[kk-1]<=c1){ break; } te1[ii-1]=te1[kk-1];te2[ii-1]=te2[kk-1];te3[ii-1]=te3[kk-1]; ii=kk; }//wend te1[ii-1]=c1;te2[ii-1]=c2;te3[ii-1]=c3; }//next mm } public void paint(java.awt.Graphics g){ pi=3.14159265358979; g.setColor(col1); g.fillRect(1,1,haba,taka); g.setColor(col2); Point old,current; N=n; for(k=0;k3){ mind3=mind2; minj3=minj2; } if(N>2){ mind2=mind; minj2=minj; } if(N>1){ mind=dd; minj=j; } } else{ if(dd3){ mind3=mind2; minj3=minj2; } if(N>2){ mind2=dd; minj2=j; } } else{ if(dd3){ mind3=dd; minj3=j; } } } } }//j!=i }//j if(N>1){ g.setColor(cl[0]); g.drawLine((int)x1[i],(int)y1[i],(int)x1[minj],(int)y1[minj]); th=arcsinaw((y1[minj]-y1[i])/d(x1[minj],y1[minj],x1[i],y1[i]))+pi/2.0; if(x1[minj]>x1[i]){ th=3.0*pi/2.0-arcsinaw((y1[minj]-y1[i])/d(x1[i],y1[i],x1[minj],y1[minj])); } xx=x1[minj]+10.0*Math.cos((th)-pi/2.0+pi/6.0); yy=y1[minj]-10.0*Math.sin((th)-pi/2.0+pi/6.0); g.drawLine((int)xx,(int)yy,(int)x1[minj],(int)y1[minj]); xx=x1[minj]+10.0*Math.cos((th)-pi/2.0-pi/6.0); yy=y1[minj]-10.0*Math.sin((th)-pi/2.0-pi/6.0); g.drawLine((int)xx,(int)yy,(int)x1[minj],(int)y1[minj]); } if(N>2){ g.setColor(cl[1]); g.drawLine((int)x1[i],(int)y1[i],(int)x1[minj2],(int)y1[minj2]); th=arcsinaw((y1[minj2]-y1[i])/d(x1[minj2],y1[minj2],x1[i],y1[i]))+pi/2.0; if(x1[minj2]>x1[i]){ th=3.0*pi/2.0-arcsinaw((y1[minj2]-y1[i])/d(x1[i],y1[i],x1[minj2],y1[minj2])); } xx=x1[minj2]+10.0*Math.cos((th)-pi/2.0+pi/8.0); yy=y1[minj2]-10.0*Math.sin((th)-pi/2.0+pi/8.0); g.drawLine((int)xx,(int)yy,(int)x1[minj2],(int)y1[minj2]); xx=x1[minj2]+10.0*Math.cos((th)-pi/2.0-pi/8.0); yy=y1[minj2]-10.0*Math.sin((th)-pi/2.0-pi/8.0); g.drawLine((int)xx,(int)yy,(int)x1[minj2],(int)y1[minj2]); } if(N>3){ g.setColor(cl[2]); g.drawLine((int)x1[i],(int)y1[i],(int)x1[minj3],(int)y1[minj3]); th=arcsinaw((y1[minj3]-y1[i])/d(x1[minj3],y1[minj3],x1[i],y1[i]))+pi/2.0; if(x1[minj3]>x1[i]){ th=3.0*pi/2.0-arcsinaw((y1[minj3]-y1[i])/d(x1[i],y1[i],x1[minj3],y1[minj3])); } xx=x1[minj3]+10.0*Math.cos((th)-pi/2.0+pi/10.0); yy=y1[minj3]-10.0*Math.sin((th)-pi/2.0+pi/10.0); g.drawLine((int)xx,(int)yy,(int)x1[minj3],(int)y1[minj3]); xx=x1[minj3]+10.0*Math.cos((th)-pi/2.0-pi/10.0); yy=y1[minj3]-10.0*Math.sin((th)-pi/2.0-pi/10.0); g.drawLine((int)xx,(int)yy,(int)x1[minj3],(int)y1[minj3]); } }//i g.setColor(cl[0]); g.drawString("N="+N,15,15); } public boolean mouseDown(Event evt, int x, int y) { if(n<30){ p[n] = new Point(x,y); n++; } else{ n=0; } repaint(); return true; } }