重庆专业微信网站制作,深圳专业网站建设平台网页,电商直播app开发公司,国外怎么做网站今天接触了一个新东西#xff0c;感觉很酷炫的样子。不是我写的#xff0c;拿给大家看一看#xff0c;喜欢的可以直接拿走不谢。树的形状和树枝多少都是随机的#xff0c;每刷新一次就有一次的惊喜哦#xff0c;无聊的亲们可以多刷几次#xff0c;当动画来看哦。2017年又…今天接触了一个新东西感觉很酷炫的样子。不是我写的拿给大家看一看喜欢的可以直接拿走不谢。树的形状和树枝多少都是随机的每刷新一次就有一次的惊喜哦无聊的亲们可以多刷几次当动画来看哦。2017年又一天一天的走完了2018都已经过去三十多天了。我每天都新建一个文件夹这个文件夹里便是这一天的时光。可能在别人看来乏味而枯燥但我竟然觉得这感觉相当不错。临近年关却没有要过年的感觉。估计是因为身在异乡身边没有亲朋友人便总是觉得冷清了一些。所以就敲代码吧。html 代码
!DOCTYPE htmlhtml langenhead meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 meta http-equivX-UA-Compatible contentieedge title/title/headbody canvas idcanvas/canvas script const canvas document.getElementById(canvas) const ctx canvas.getContext(2d) const W canvas.width 900 const H canvas.height 700 canvas.style.border 8px solid #000 // rp([1, 3]) 1 | 2 | 3 // rp([3, 1], true) 1 - 3 之间随机的小数 const rp function (arr, uint){ const min Math.min(...arr) const max Math.max(...arr) const ret Math.random() * (max - min) min return uint ? ret : Math.round(ret) } const maxBranch 3 tree(ctx, W/2, H/2 200, 70, -Math.PI/2, 14, 20) function tree(ctx, startX, startY, branchLen, angle, depth, branchWidth) { const endX startX branchLen * Math.cos(angle) const endY startY branchLen * Math.sin(angle) const color (depth--) maxBranch - 1 ? rgb(0, ${rp([128, 196])}, 0) : rgb(68, 50, 25) ctx.save() ctx.lineCap round ctx.lineWidth branchWidth ctx.strokeStyle color ctx.beginPath() ctx.moveTo(startX, startY) ctx.lineTo(endX, endY) ctx.stroke() ctx.restore() if (!depth) return const subBranches rp([1, maxBranch]) for (let i0; isubBranches; i ) { setTimeout( tree, 0, ctx, endX, endY, branchLen * rp([0.7, 1], true), angle rp([-Math.PI/5, Math.PI/5], true), depth, branchWidth * 0.72 ) } } /script/body/html