本文实例为大家分享了javascript实现点击产生随机图形的具体代码,供大家参考,具体内容如下
点击产生随机图形
效果如下:
用javascript来实现
主要用canvas和随机函数完成各种图形
第一步
在HTML和CSS中创建出现图形的矩形和两个按钮。第一个按钮用来产生图形,第二个按钮用来清除产生的所有图形。
<style>
*{
margin : 0 ;
padding : 0 ;
}
#canvas{
border : solid 1px red ;
display : block ;
margin : 0 auto ;
}
#father{
width : 200px ;
margin : 0 auto ;
}
#btn{
margin-right : 40px ;
cursor : pointer ;
}
#cle{
cursor : pointer ;
}
</style>
< body >
< canvas id = "canvas" width = "600" height = "600" ></ canvas >
< div id = "father" >
< input type = "button" id = "btn" value = "点击生成" >
< input type = "button" id = "cle" value = "点击清除" >
</ div >
</ body >
第二步
在javascript中分别创建用来随机颜色的函数,点击随机产生图形的函数,点击清除屏幕的函数。
var canvas=document.getElementById( "canvas" );
var context=canvas.getContext( "2d" );
var btn=document.getElementById( "btn" );
var cle=document.getElementById( "cle" );
设置图形的随机颜色
function color(){
var r=Math.floor(Math.random()*255);
var g=Math.floor(Math.random()*255);
var b=Math.floor(Math.random()*255);
var a=Math.random();
var bg= "rgba(" +r+ "," +g+ "," +b+ "," +a+ ")" ;
return bg;
}
设置点击按钮随机产生图形的函数,第一种实心和空心矩形,第二种实心和空心圆,第三种直线,它们的位置和大小分别写随机函数,再分别加上canvas代码,用来画图形,如context.beginPath()-context closePath()。
btn.onclick= function (){
var random=Math.floor(Math.random()*3+1);
if (random==1){
var rectr=Math.floor(Math.random()*2);
var rectx=Math.floor(Math.random()*600);
var recty=Math.floor(Math.random()*600);
var rectwidth=Math.floor(Math.random()*200+200);
var rectheight=Math.floor(Math.random()*200+200);
if (rectr== 0){
context.beginPath();
context.strokeStyle=color();
context.strokeRect(rectx,recty,rectwidth,rectheight)
context.closePath();
}
else {
context.beginPath();
context.fillStyle=color();
context.fillRect(rectx,recty,rectwidth,rectheight);
context.closePath();
}
}
else if (random == 2){
var arcr=Math.floor(Math.random()*2);
var arcx=Math.floor(Math.random()*600);
var arcy=Math.floor(Math.random()*600);
var arcr=Math.floor(Math.random()*300);
if (arcr==0){
context.beginPath();
context.strokeStyle=color();
context.arc(arcx,arcy,arcr,0,2*Math.PI, false );
context.stroke();
context.closePath();
}
else {
context.beginPath();
context.fillStyle=color();
context.arc(arcx,arcy,arcr,0,2*Math.PI, false );
context.fill();
context.closePath();
}
}
else if (random==3){
var movex=Math.floor(Math.random()*600);
var movey=Math.floor(Math.random()*600);
var linex=Math.floor(Math.random()*600);
var liney=Math.floor(Math.random()*600);
var linew=Math.floor(Math.random()*20);
context.beginPath();
context.strokeStyle=color();
context.moveTo(movex,movey);
context.lineTo(linex,liney);
context.lineWidth=linew;
context.stroke();
context.closePath();
}
}
第三步
最后创建点击清除屏幕的按钮函数,根据创建的屏幕大小,在canvas中添加 context.clearRect(0,0,600,600);可实现清除屏幕。
cle.onclick= function (){
context.beginPath();
context.clearRect(0,0,600,600);
context.closePath();
}
点击产生随机图形的效果完成了!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/bs775926015/article/details/113050440
查看更多关于javascript实现点击产生随机图形的详细内容...