宝哥软件园

javascript实现画不相交的圆

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

效果

超文本标记语言代码

复制代码代码如下:画布id='my_canvas '宽度='500 '高度='400 '您的浏览器不支持画布/画布按钮id='my_btn '另一个圆形/按钮

爪哇岛描述语言代码

复制代码代码如下: var上下文=文档。getelementbyid(' my _ canvas ');上下文=上下文。get context(' 2d ');var circles=[];定义变量宽度=500;可变高度=400;var最大半径=30var最小半径=20var计数=0;窗户。onload=function(){ var BTN=document。getelementbyid(' my _ BTN ');BTN。onclick=function(){ var time=new Date();开始=时间。gettime();make _ circle();} }函数圆(x,y,r,颜色){这个。x=xthis . y=ythis . r=rthis . color=color }函数make _ circle(){ var x=math。地板(数学。random()* width)1;var y=数学。地板(数学。随机()*身高)1;var r=数学。地板(数学。random()*(max _ radius-min _ radius))min _ radius;var color=' RGB '(Math . floor(math . random()* 256))','(math。地板(数学。random()* 256))','(数学。地板(数学。random()* 256))')';//制作不同的colorvar circle=new Circle(x,y,r,color);if(test1(圆)test2(圆)){ circles。推(圈);context . strokestyle=color context。begin path();上下文弧(x,y,r,0,数学.PI*2,真);语境。close path();语境。笔画();计数=0;} else { countif(计数10000){//如果循环次数太多,我们可以假设没有空间给新circlealert('不再循环');返回false } make _ circle();} } function test1(圆形){//测试新圆是否与othersvar len=圆相交。长度;for(var I=0;伊琳;I){ var x1=圆[i].x;var y1=圆[i].y;var r1=圆[i].r;var x2=圆。x;var y2=圆。y;var r2=圆。r;if((x1-x2)*(x1-x2)(y1-y2)*(y1-y2)(R2R1)*(R2R1))返回false} }返回true}功能测试2(圆形){//测试新圆是否触碰到边框if((circle.x circle.r)宽度||(circle.y circle.r)高度| |(圆圈。x圆。r)0 | |(圆形。y形圈。r)0){返回false} else {返回true}}

以上所述就是本文的全部内容了,希望能够对大家熟练掌握爪哇岛描述语言有所帮助。

更多资讯
游戏推荐
更多+