Canvas_learn

Run Settings
LanguageJavaScript
Language Version
Run Command
(function(ph,win){ var info = { config:{ colors:[ "#FFFFFF","#FF0000","#00FF00","#0000FF","#FF00FF", "#00FFFF","#FFFF00","#000000","#70DB93","#5C3317", "#9F5F9F","#B5A642","#D9D919","#A67D3D","#8C7853", "#A67D3D","#B87333","#FF7F00","#42426F","#5C4033", "#2F4F2F","#4A766E","#4F4F2F","#9932CD","#871F78", "#6B238E","#2F4F4F","#97694F" ], canvasWidth:500, canvasHeight:309, lineSum:100, // lines num lineLen:200, // line default length lineLenMin:30, // line min length default 0 lineLenMax:150// line max length default equals lineLen }, //draw line line:{ sum:0, success:0, failure:0 } } // delete old myCanvas let old_myCanvas = document.getElementById("myCanvas"); old_myCanvas&&old_myCanvas.remove(); //canvas_container let cc = document.querySelector(".col-lg-12"); let canvas = document.createElement("canvas"); canvas.id="myCanvas"; canvas.style="background:#1A414B;border:1px solid #0a656c;border-radius:5px;opacity:0.9"// cc.insertBefore(canvas,cc.firstChild); //设置宽高一定要在canvas节点添加之后 canvas.width=info.config.canvasWidth||500; canvas.height=info.config.canvasHeight||300; var ctx = canvas.getContext("2d"); //随机线默认数量,默认长度 for(let i=0;i<info.config.lineSum||0;i++){ ctx.beginPath(); drawRandomLine(); ctx.closePath(); } console.log("sum:"+info.line.sum+" success:"+info.line.success+" failure:"+info.line.failure) //随机划线 function drawRandomLine(){ if(info.config.lineLen){ if(info.config.lineLenMax>info.config.lineLen ||info.config.lineLenMax<info.config.lineLenMin){ info.config.lineLenMax = info.config.lineLen; } if(info.config.lineLenMin>info.config.lineLen ||info.config.lineLenMax<info.config.lineLenMin ||info.config.lineMin<0){ info.config.lineLenMin = 0; } } var radd3 = Math.ceil(Math.random()*(info.config.lineLenMax-info.config.lineLenMin) +info.config.lineLenMin)||info.config.lineLen; var rx = Math.ceil(Math.random()*info.config.canvasWidth); var ry = Math.ceil(Math.random()*info.config.canvasHeight); var raddx = Math.ceil(Math.random()*radd3); var raddy = Math.ceil(Math.sqrt(radd3*radd3-raddx*raddx)); ctx.moveTo(rx,ry); var rx2 = rx+randomDirection(raddx); var ry2 = ry+randomDirection(raddy); if(rx2>=0&&rx2<=info.config.canvasWidth&&ry2>=0&&ry2<=info.config.canvasHeight){ ctx.lineTo(rx2,ry2); info.line.success++; // console.log("success: "+rx+","+ry+" ===> "+rx2+","+ry2); }else{ info.line.failure++; // console.log("failure: "+rx+","+ry+" ===> "+rx2+","+ry2); } info.line.sum++; ctx.closePath(); ctx.strokeStyle= randomColor(); ctx.stroke(); } //随机取反 function randomDirection(v){ return [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1][Math.ceil(Math.random()*20)]?v:-v; } //随机颜色 function randomColor(){ return info.config.colors[Math.ceil(Math.random()*info.config.colors.length)]; } })(pheker={},window);
Editor Settings
Theme
Key bindings
Full width
Lines