import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; public class hipwvo extends java.applet.Applet{ Color col1,col2; int Npw; int takapw,habapw; int kpw,ipw,jpw,lpw,upw,k2pw,xzpw,xz2pw,yzpw,yz2pw; double eipw,ejpw,bepw,cpw,apw,bpw,dipw,yspw,tpw; double x0pw,y0pw,yypw,xa1pw,ya1pw; double kxpw[]=new double[100]; double kypw[]=new double[100]; double kzpw[]=new double[100]; double ekpw,be2pw,c2pw,a2pw,b2pw,di3pw,ys3pw,t2pw; double y20pw,y21pw,sa0pw,sa1pw,xxpw,dspw,uspw; int br2pw=0; Color cl[]=new Color[13]; String NS,habaS,takaS; double Nd,takad,habad; public double dou(String dous){ double dou1; dou1 = (Double.valueOf(dous)).doubleValue(); return dou1; } public double randpw(){ double rand1pw; rand1pw=Math.random(); return rand1pw; } public void init(){ col1=Color.black; col2=Color.yellow; cl[0]=Color.white; cl[1]=Color.green; cl[2]=new Color(199,111,238); takaS=getParameter("takap"); habaS=getParameter("habap"); NS=getParameter("Np"); habad=dou(habaS); takad=dou(takaS); Nd=dou(NS); if(Nd==10){ Nd=4+16*randpw(); } habapw=(int)habad; takapw=(int)takad; Npw=(int)Nd; } double x1pw[]=new double[100]; double y1pw[]=new double[100]; double w1pw[]=new double[100]; int xpw[]=new int[100]; int ypw[]=new int[100]; int wpw[]=new int[100]; double spw[]=new double[100]; String ssspw[]=new String[100]; public double joupw(double aaapw,double bbbpw){ double jou1pw; jou1pw=Math.pow(aaapw,bbbpw); return jou1pw; } void heappw(double he1pw[],double he2pw[],double he3pw[],int NNpw){ int kkpw,kkspw,iipw,jjpw,mmpw; double b1pw,b2pw,b3pw,c1pw,c2pw,c3pw; kkspw=(int)(NNpw/2); for(kkpw=kkspw;kkpw>=1;kkpw--){ iipw=kkpw; b1pw=he1pw[iipw-1];b2pw=he2pw[iipw-1];b3pw=he3pw[iipw-1]; while(2*iipw<=NNpw){ jjpw=2*iipw; if(jjpw+1<=NNpw){ if(he1pw[jjpw-1]=1;mmpw--){ c1pw=he1pw[mmpw];c2pw=he2pw[mmpw];c3pw=he3pw[mmpw]; he1pw[mmpw]=he1pw[0];he2pw[mmpw]=he2pw[0];he3pw[mmpw]=he3pw[0]; iipw=1; while(2*iipw<=mmpw){ kkpw=2*iipw; if(kkpw+1<=mmpw){ if(he1pw[kkpw-1]<=he1pw[kkpw]){ kkpw++; } } if(he1pw[kkpw-1]<=c1pw){ break; } he1pw[iipw-1]=he1pw[kkpw-1];he2pw[iipw-1]=he2pw[kkpw-1];he3pw[iipw-1]=he3pw[kkpw-1]; iipw=kkpw; }//wend he1pw[iipw-1]=c1pw;he2pw[iipw-1]=c2pw;he3pw[iipw-1]=c3pw; }//next mm } public void paint(java.awt.Graphics g){ g.setColor(col1); g.fillRect(1,1,habapw,takapw); g.setColor(col2); g.drawString("N="+Npw,15,15); for(kpw=1;kpw<=Npw;kpw++){ x1pw[kpw-1]=randpw()*(habapw-30)+15; y1pw[kpw-1]=randpw()*(takapw-30)+15; w1pw[kpw-1]=randpw()*10000+1; xpw[kpw-1]=(int)x1pw[kpw-1]; ypw[kpw-1]=(int)y1pw[kpw-1]; wpw[kpw-1]=(int)w1pw[kpw-1]; ssspw[kpw-1]=""+wpw[kpw-1]; g.drawString(ssspw[kpw-1],xpw[kpw-1]-3,ypw[kpw-1]-3); g.fillOval(xpw[kpw-1]-2,ypw[kpw-1]-2,4,4); } g.drawLine(habapw-150,10,habapw-50,10); g.drawLine(habapw-150,5,habapw-150,15); g.drawLine(habapw-100,5,habapw-100,10); g.drawLine(habapw-50,5,habapw-50,15); g.drawString("0",habapw-158,13); g.drawString("100",habapw-48,13); heappw(w1pw,x1pw,y1pw,Npw); for(ipw=1;ipw<=Npw-1;ipw++){ for(jpw=ipw+1;jpw<=Npw;jpw++){ eipw=joupw(x1pw[ipw-1],2)+joupw(y1pw[ipw-1],2); ejpw=joupw(x1pw[jpw-1],2)+joupw(y1pw[jpw-1],2); bepw=w1pw[jpw-1]-w1pw[ipw-1]; cpw=0.5*(ejpw-eipw-bepw); apw=x1pw[jpw-1]-x1pw[ipw-1]; bpw=y1pw[jpw-1]-y1pw[ipw-1]; dipw=-apw/bpw; yspw=cpw/bpw; tpw=joupw(x1pw[ipw-1]-x1pw[jpw-1],2)+joupw(y1pw[ipw-1]-y1pw[jpw-1],2); if(yspw>0 && yspw0){ x0pw=-yspw/dipw;y0pw=0; } else{ x0pw=(takapw-yspw)/dipw; y0pw=takapw; } } yypw=dipw*habapw+yspw; if(yypw>0 && yypw0){ xa1pw=(takapw-yspw)/dipw;ya1pw=takapw; } else{ xa1pw=-yspw/dipw; ya1pw=0; } } lpw=1; kxpw[lpw-1]=x0pw;kypw[lpw-1]=y0pw; for(kpw=1;kpw<=Npw;kpw++){ if(kpw!=ipw && kpw!=jpw){ ekpw=joupw(x1pw[kpw-1],2)+joupw(y1pw[kpw-1],2); be2pw=w1pw[kpw-1]-w1pw[ipw-1]; c2pw=0.5*(ekpw-eipw-be2pw); a2pw=x1pw[kpw-1]-x1pw[ipw-1]; b2pw=y1pw[kpw-1]-y1pw[ipw-1]; di3pw=-a2pw/b2pw; ys3pw=c2pw/b2pw; t2pw=joupw(x1pw[ipw-1]-x1pw[kpw-1],2)+joupw(y1pw[ipw-1]-y1pw[kpw-1],2); y20pw=di3pw*x0pw+ys3pw; y21pw=di3pw*xa1pw+ys3pw; sa0pw=y0pw-y20pw; sa1pw=ya1pw-y21pw; if(sa0pw*sa1pw<=0){ lpw++; kxpw[lpw-1]=(ys3pw-yspw)/(dipw-di3pw); kypw[lpw-1]=dipw*kxpw[lpw-1]+yspw; } }//if(k!=i && k!=j) }//next k lpw++; kxpw[lpw-1]=xa1pw; kypw[lpw-1]=ya1pw; for(upw=1;upw<=lpw;upw++){ kzpw[upw-1]=0; } heappw(kxpw,kypw,kzpw,lpw); for(kpw=1;kpw<=lpw-1;kpw++){ k2pw=kpw+1; xxpw=(kxpw[kpw-1]+kxpw[k2pw-1])/2; yypw=dipw*xxpw+yspw; dspw=joupw(xxpw-x1pw[ipw-1],2)+joupw(yypw-y1pw[ipw-1],2)-w1pw[ipw-1]; br2pw=0; for(upw=1;upw<=Npw;upw++){ if(upw!=ipw && upw!=jpw){ uspw=joupw(xxpw-x1pw[upw-1],2)+joupw(yypw-y1pw[upw-1],2)-w1pw[upw-1]; if(uspw