//********J_MainCircle.java***************
import java.awt.Color;
import java.awt.Graphics;
import java.applet.Applet;
import java.lang.*;
import java.lang.Integer.*;
public class J_MainCircle extends Applet
{
public final int N =6;
int s1 = 0;
int x1 = 0;
String s2;
String x2;
int sum;
int start;
int wid;
int length;
public void init()
{
//resize(350,1000);
//s2=getParameter("start");
//x2=getParameter("s");
//System.out.println(x2);
//s1 =Integer.parseInt(s);
start = Integer.parseInt(getParameter("start"));
System.out.println(start);
wid = Integer.parseInt(getParameter("wid"));
System.out.println(wid);
length = Integer.parseInt(getParameter("length"));
System.out.println(length);
//resize(wid,length);
} // 初 始 化 一 个 的 作 图 区 域
public void paint(Graphics g)
{
long time;
//int N = 20;
String text = "1";
int k = 0;
time = 100;
matrx ma = new matrx();
int S[][]= new int [N][N];
int E[] = new int [N];/*储存入队的节点*/
int minIndex[][] = new int[1][2];
//初始化矩阵为0;
for (int i = 0;i < N;i ++)
{
E[i] = 0;
}
for (int i = 0;i < N;i ++)
for (int j = 0;j < N;j ++)
{
S[i][j] = 0;
}
//ma.init(S);/*未实现的函数,将S初始化为邻接矩阵------------*/
//int i,j;
//S[][] = 0;
J_Circle [][] node = new J_Circle[1][N];
J_Circle b;
int hangju = 0;
int startx =500;
int starty =300;
int B = 0;
//int hangju = 0;
donghua a = new donghua();
J_Circle c=new J_Circle(50,50,20,Color.red,text);
//J_Circle b=new J_Circle(100,100,20,Color.red,text);
/*
c.mb_draw(g);
c.mb_set(200,N0,20,Color.red,text);
c.mb_draw(g);
c.mb_setColor(Color.green);
b=new J_Circle(100,100,20,Color.red,text);
b.mb_draw(g);
*/
/*
g.setColor(Color.YELLOW);
g.drawLine(N0,N0, 200,N0);
*/
//g.drawRect(N0, N0, 1, 1N0);
//g.drawRect(N0, N0, 1N0, 1);
//Thread.sleep(3000);
//a.donghua1(N0, N0, 200, N0, g);
/*
try {
for (int dong = 1;dong < 3;dong ++)
{
Thread.sleep(N00);
g.setColor(Color.RED);
g.drawLine(N0 , N0 , 200 ,N0 );
Thread.sleep(N00);
g.setColor(Color.yellow);
g.drawLine(N0 , N0 , 200 ,N0);
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
*/
for (int i = 0;i < 1;i ++ )
{
//k ++ ;
for (int j = 0; j < N;j ++ )
{
int fu;
k ++ ;
//int B = 0;
//int C = (int)Math.cos(B);
double x=Math.cos(B);
//String a1=(String)subSequence(0,x);
text=Integer.toString(j + 1);
//int txtid = (i + 1) * (j + 1);
//text=Integer.toString(k);
//node[i][j] = new J_Circle(N0 + i * N0,N0 + i * N0,20,Color.red,text);
//node[i].mb_draw(g);
//b = new J_Circle(N0 + (j) * 100,hangju,20,Color.red,text);
//b.mb_draw(g);
/*
if (j%2 == 0)
{
//System.out.print(j);
//System.out.print(j%2);
fu = 1;
}
else
{
fu = -1;
//hangju += 50;
}
// node[i][j] = new J_Circle(500 + (j) * 100,hangju + (j+1) * fu * 20,20,Color.green,text);
node[i][j] = new J_Circle(0 + (j) * 100,hangju + (j+1) * fu * 30 ,20,Color.green,text);
node[i][j].mb_draw(g);
Math.cos(30);
*/
node[i][j] = new J_Circle(startx + (int)(Math.cos(B)* 300) ,starty + (int)(Math.sin(B)* 300) ,30,Color.green,text);
node[i][j].mb_draw(g);
B = B + 29;
}
hangju += 100;
}
ma.init(S);
a.drawquan(node, S, g);
for (int i = 0;i < N;i++)
{
for (int j = 0;j < N;j++)
{
System.out.print(S[i][j]);
System.out.print("\t");
}
System.out.println();
}
try
{
Thread.sleep(2000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
/*根据初始矩阵画线*/
//a.drawquan(node, S, g);
/*
E[0] = 1;//从第一个节点开始,储存第一个结点;
S[0][0] = 100;
a.yuandong(node[0][0], g);
*/
//g.setColor(Color.black);
//node[0][0].mb_draw(g);
/*
for (int i = 0;i < N;i++)
{
E[i] = minIndex[0][1] + 1;//从第一个节点开始,储存第一个结点;
S[minIndex[0][1]][minIndex[0][0]] = 100;
S[minIndex[0][0]][minIndex[0][1]] = 100;
a.yuandong(node[0][E[i] - 1], g);
ma.findSE(S,E,minIndex,node,g);//寻找S在E中非零数的行的最小值的坐标,若存在Sij 不为0 则连线
ma.chageMaxES(E, S, node,g);//将在E中的行逐列比较,将不为零,100的两个以上的值中的最大值变为零
//ma.chageMaxES(E,S);//将在E中的行逐列比较,将不为零,100的两个以上的值中的最大值变为零
//ma.chageMaxES(E, S, node,g);
}
*/
int i = 0;
//int start = 5;//从第二个开始
minIndex[0][1] = start - 1;
minIndex[0][0] = start - 1;
while (ma.findnum(S)&& i < N)
{
E[i] = minIndex[0][1] + 1;//从第一个节点开始,储存第一个结点;
S[minIndex[0][1]][minIndex[0][0]] = 100;
S[minIndex[0][0]][minIndex[0][1]] = 100;
a.yuandong(node[0][E[i] - 1], g);
System.out.println();
System.out.println();
System.out.println();
System.out.println(minIndex[0][1] + 1);
System.out.println();
ma.findSE(S,E,minIndex,node,g);//寻找S在E中非零数的行的最小值的坐标,若存在Sij 不为0 则连线
ma.chageMaxES(E, S, node,g);//将在E中的行逐列比较,将不为零,100的两个以上的值中的最大值变为零
//ma.chageMaxES(E,S);//将在E中的行逐列比较,将不为零,100的两个以上的值中的最大值变为零
//ma.chageMaxES(E, S, node,g);
i ++;
}
for ( i = 0;i < N;i++)
{
for (int j = 0;j < N;j++)
{
System.out.print(S[i][j]);
System.out.print("\t");
}
System.out.println();
}
/*minIndex 为最小节点的坐标-----*/
//Thread.sleep(time, N);
//给点连线
/*
for (int i = 0;i < 3;i ++)
for(int j = 0;j < N;j ++)
{
if (j > 0)
{
int x1,y1,x2,y2;
x1 = node[i][j - 1].mb_getX();
y1 = node[i][j - 1].mb_getY();
x2 = node[i][j].mb_getX();
y2 = node[i][j].mb_getY();
a.donghua1(x1, y1, x2, y2, g);
}
}
*/
}
}