激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務(wù)器之家 - 編程語言 - JavaScript - js教程 - javascript實(shí)現(xiàn)點(diǎn)擊產(chǎn)生隨機(jī)圖形

javascript實(shí)現(xiàn)點(diǎn)擊產(chǎn)生隨機(jī)圖形

2022-01-07 16:19半成熟、 js教程

這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)點(diǎn)擊產(chǎn)生隨機(jī)圖形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了javascript實(shí)現(xiàn)點(diǎn)擊產(chǎn)生隨機(jī)圖形的具體代碼,供大家參考,具體內(nèi)容如下

點(diǎn)擊產(chǎn)生隨機(jī)圖形

效果如下:

javascript實(shí)現(xiàn)點(diǎn)擊產(chǎn)生隨機(jī)圖形

用javascript來實(shí)現(xiàn)

主要用canvas和隨機(jī)函數(shù)完成各種圖形

第一步

在HTML和CSS中創(chuàng)建出現(xiàn)圖形的矩形和兩個(gè)按鈕。第一個(gè)按鈕用來產(chǎn)生圖形,第二個(gè)按鈕用來清除產(chǎn)生的所有圖形。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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>
?
1
2
3
4
5
6
7
<body>
 <canvas id="canvas" width="600" height="600"></canvas>
 <div id="father">
  <input type="button" id="btn" value="點(diǎn)擊生成">
  <input type="button" id="cle" value="點(diǎn)擊清除">
 </div>
</body>

第二步

在javascript中分別創(chuàng)建用來隨機(jī)顏色的函數(shù),點(diǎn)擊隨機(jī)產(chǎn)生圖形的函數(shù),點(diǎn)擊清除屏幕的函數(shù)。

?
1
2
3
4
var canvas=document.getElementById("canvas");
 var context=canvas.getContext("2d");
 var btn=document.getElementById("btn");
 var cle=document.getElementById("cle");

設(shè)置圖形的隨機(jī)顏色

?
1
2
3
4
5
6
7
8
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;
 }

設(shè)置點(diǎn)擊按鈕隨機(jī)產(chǎn)生圖形的函數(shù),第一種實(shí)心和空心矩形,第二種實(shí)心和空心圓,第三種直線,它們的位置和大小分別寫隨機(jī)函數(shù),再分別加上canvas代碼,用來畫圖形,如context.beginPath()-context closePath()。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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();
  }
}

第三步

最后創(chuàng)建點(diǎn)擊清除屏幕的按鈕函數(shù),根據(jù)創(chuàng)建的屏幕大小,在canvas中添加 context.clearRect(0,0,600,600);可實(shí)現(xiàn)清除屏幕。

?
1
2
3
4
5
cle.onclick=function(){
  context.beginPath();
  context.clearRect(0,0,600,600);
  context.closePath();
 }

點(diǎn)擊產(chǎn)生隨機(jī)圖形的效果完成了!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/bs775926015/article/details/113050440

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色av综合在线 | 国产毛片自拍 | 欧美一级三级在线观看 | 国产精品成人一区二区三区电影毛片 | 欧美人与牲禽动交精品一区 | 久久久久久麻豆 | 香蕉在线看 | 中文字幕国产欧美 | 亚洲影院在线播放 | 激情视频在线播放 | 一区二区三区四区高清视频 | 2017亚洲男人天堂 | 色欲香天天天综合网站 | 免费网站看毛片 | 成人精品久久 | 欧美18—19sex性护士中国 | 深夜视频福利 | 国产网站黄 | 羞羞视频.www在线观看 | 56av国产精品久久久久久久 | 国产一国产一级毛片视频在线 | 国产1区在线 | 亚洲一区二区中文字幕在线观看 | 日本网站一区二区三区 | 91九色免费视频 | 成人激情视频网 | 91精品国产综合久久婷婷香 | 精品一区二区三区在线观看视频 | 久久精品污| 久久精品视频2 | 国产美女视频一区二区三区 | 久草在线播放视频 | 欧美黄色小视频 | 偷偷操偷偷操 | 永久免费毛片 | 久久久久99一区二区三区 | 成年免费视频黄网站在线观看 | 中国大陆一级毛片 | hdjapanesemassagehd日本 | 亚洲第一页综合 | 免费观看一级 |