1.5.19动画。编写一个RandomGrid(请见练习1.5.18)的用例,和我们开发用例一样使用UnionFind来检查触点的连通性并在处理的同时用StdDraw将它们绘出。
答:书上的连通性太美,这里太挫了。
public class RandomGridAnimation
{
public static void main(String[] args)
{
int N=Integer.parseInt(args[0]);
RandomGrid.Connection[] conn= RandomGrid.generate(N);
//
StdDraw.setXscale(0,1100);
StdDraw.setYscale(0,1100);
StdDraw.setPenRadius(0.02);
//drow point
int x=1;
int y=1;
for (x=1;x<=N;x++)
{
for (y=1;y<=N;y++)
{
StdDraw.point(x*100,y*100);
}
}
//draw line
int i=0;
int x1,y1=0;
int x2,y2=0;
StdDraw.setPenRadius(0.005);
StdDraw.setPenColor(StdDraw.RED);
while (i<conn.length)
{
x1=(conn[i].P()%N+1)*100;
y1=(conn[i].P()/N+1)*100;
//
x2=(conn[i].Q()%N+1)*100;
y2=(conn[i].Q()/N+1)*100;
StdDraw.line(x1,y1,x2,y2);
StdDraw.pause(25);
//
i++;
}
}
}