好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

javascript实现点击产生随机图形

本文实例为大家分享了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实现点击产生随机图形的详细内容...

  阅读:43次