极乐门资源网 Design By www.ioogu.com
本文实例为大家分享了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(); }
点击产生随机图形的效果完成了!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无javascript实现点击产生随机图形的评论...
更新日志
2024年11月18日
2024年11月18日
- 【雨果唱片】中国管弦乐《鹿回头》WAV
- APM亚流新世代《一起冒险》[FLAC/分轨][106.77MB]
- 崔健《飞狗》律冻文化[WAV+CUE][1.1G]
- 罗志祥《舞状元 (Explicit)》[320K/MP3][66.77MB]
- 尤雅.1997-幽雅精粹2CD【南方】【WAV+CUE】
- 张惠妹.2007-STAR(引进版)【EMI百代】【WAV+CUE】
- 群星.2008-LOVE情歌集VOL.8【正东】【WAV+CUE】
- 罗志祥《舞状元 (Explicit)》[FLAC/分轨][360.76MB]
- Tank《我不伟大,至少我能改变我。》[320K/MP3][160.41MB]
- Tank《我不伟大,至少我能改变我。》[FLAC/分轨][236.89MB]
- CD圣经推荐-夏韶声《谙2》SACD-ISO
- 钟镇涛-《百分百钟镇涛》首批限量版SACD-ISO
- 群星《继续微笑致敬许冠杰》[低速原抓WAV+CUE]
- 潘秀琼.2003-国语难忘金曲珍藏集【皇星全音】【WAV+CUE】
- 林东松.1997-2039玫瑰事件【宝丽金】【WAV+CUE】