javascript实现了绘画的不相交循环。

javascript实现了绘画的不相交循环。
影响
HTML code

复制代码代码如下所示:
您的浏览器不支持画布。
另一个圆
Javascript代码

复制代码代码如下所示:

VaR上下文= document.getelementbyid(my_canvas );

背景context.getcontext(2D);

var圆= };

var宽度= 500;

var高度= 400;

无功max_radius = 30;

无功min_radius = 20;

var计数= 0;

窗口。指针函数(){

VaR建立document.getelementbyid(my_btn );

按钮。onclick =函数(){

时间=新日期();

开始= time.gettime();

make_circle();

}

}

函数圆(x,y,r,颜色){

这个;

这个,y = y;

这个;

这个颜色=颜色;

}

功能make_circle(){

var x = math.floor(Math.random()*宽)+ 1;

var y = math.floor(Math.random()*高)+ 1;

VAR r = math.floor(Math.random()*(max_radius-min_radius))+ min_radius;

VaR颜色=RGB(+(math.floor(Math.random()* 256)+

var圆=新圆(x,y,r,颜色);

如果(test1(圈)test2(圈)){

Circles.push(圈);

strokeStyle =颜色背景;

Context.beginPath();

context.arc(X,Y,R,0,数学,PI * 2,真的);

Context.closePath();

context.stroke();

计数= 0;

}

别的{

计数+;

如果(计数> 10000){如果它循环太多次,我们可以假设

警报(不再圈);

返回false;

}

make_circle();

}

}

功能测试(圈){ / /测试如果新圈与他人

VaR len = circles.length;

对于(var i = 0;i < i;i + +){

圈= { };

VaR Y1 =界{我};

圈= { };

变量=圆= x;

VaR Y2 =圈。Y;

var =圆= R;

如果((x1-x2中)*(x1-x2中)+(Y1 Y2)*(Y1 Y2)<(R1 R2 +)*(R2和R1)){

返回false;

}

}

返回true;

}

功能测试2(圈){ / /测试如果新圈接触边界

如果((圆。x +圆。R)>宽度| |(圆。Y +圆。R)>高度| |(圆。x-circle。R)<0 | |(圆。y-circle。R)<0){

返回false;

}

别的{

返回true;

}

}
以上是本文的全部内容,希望能帮助您熟练掌握javascript。

tag:循环实现了电脑软件Javascript

相关内容