效果
html代码
<canvas id="my_canvas" width="500" height="400"> your browser does not support canvas </canvas> <button id="my_btn">Another Circle</button>
javascript代码
var context=document.getElementById("my_canvas"); context=context.getContext("2d"); var circles=[]; var width=500; var height=400; var max_radius=30; var min_radius=20; var count=0; window.onload=function(){ var btn=document.getElementById("my_btn"); btn.onclick=function(){ var time=new Date(); start=time.getTime(); make_circle(); } } function Circle(x,y,r,color){ this.x=x; this.y=y; this.r=r; this.color=color; } function make_circle(){ var x=Math.floor(Math.random()*width)+1; var y=Math.floor(Math.random()*height)+1; var r=Math.floor(Math.random()*(max_radius-min_radius))+min_radius; var color="rgb("+(Math.floor(Math.random()*256))+","+(Math.floor(Math.random()*256))+","+(Math.floor(Math.random()*256))+")";//make different color var circle=new Circle(x,y,r,color); if(test1(circle)&&test2(circle)){ circles.push(circle); context.strokeStyle=color; context.beginPath(); context.arc(x,y,r,0,Math.PI*2,true); context.closePath(); context.stroke(); count=0; } else{ count++; if(count>10000){//if it loops too many times,we can assume that there is no space for new circle alert("no more circle"); return false; } make_circle(); } } function test1(circle){//test if the new circle intersects with the others var len=circles.length; for(var i=0;i<len;i++){ var x1=circles[i].x; var y1=circles[i].y; var r1=circles[i].r; var x2=circle.x; var y2=circle.y; var r2=circle.r; if((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)<(r2+r1)*(r2+r1)){ return false; } } return true; } function test2(circle){//test if the new circle touchs the border if((circle.x+circle.r)>width||(circle.y+circle.r)>height||(circle.x-circle.r)<0||(circle.y-circle.r)<0){ return false; } else{ return true; } }
以上所述就是本文的全部内容了,希望能够对大家熟练掌握javascript有所帮助。
本文向大家介绍javascript实现时钟动画,包括了javascript实现时钟动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javascript实现时钟动画的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Javascript动画的实现原理浅析,包括了Javascript动画的实现原理浅析的使用技巧和注意事项,需要的朋友参考一下 假设有这样一个动画功能需求:把一个div的宽度从100px变化到200px。写出来的代码可能是这样的: 原理是每隔一定时间增加1px,一直到200px为止。然而,动画结束后显示的耗时却不止1s(一般是1.5s左右)。究其原因,是因为setInterval并不能
本文向大家介绍Javascript HTML5 Canvas实现的一个画板,包括了Javascript HTML5 Canvas实现的一个画板的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了HTML5 Canvas实现的一个画板代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助。
我想写个动画。比如说鼠标向上滚动,一个div往上运动。当我鼠标向下的时候,div往下运动。 有没有这种动画库?我以前的做法是判断滚动方向。然后分别执行不同的动画函数。当然了我的一个动画里面,肯定是包含好几个运动元素的。
点击按钮的时候,div可以动画出来;再点击让div消失的时候,就一下消失了,没有动画,怎么解决?
我有一个Java Swing任务,目标如下: 当程序启动时,它会绘制20个未填充的圆,每个圆的半径和位置随机确定。 如果一个圆的周长线不与任何其他圆相交,则用红色画出该圆的轮廓。如果它至少与另一个圆相交,请用黑色绘制它。 添加一个JButton,每次按下JButton,就会创建一组新的圆,如上所述。 这些圆相距太远,不能共享一个周长点,即它们中心之间的距离大于它们半径的和(d>r1+r2)。示例。