canvas波浪效果怎么弄?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!
公司主营业务:成都网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出源汇免费做网站回馈大家。
基于canvas的三次贝塞尔曲线(bezierCurveTo)
<canvas id="myCanvas"></canvas> <script> var WAVE_HEIGHT = 200 //波浪变化高度 var SCALE = 0.5 // 绘制速率 var CYCLE = 360 / SCALE var TIME = 0 function initCanvas() { var c = document.getElementById("myCanvas") var width = window.screen.width var height = window.screen.height var ctx = c.getContext("2d") c.width = width c.height = height // start window.requestAnimationFrame(function() { draw(ctx, width, height) }) } function draw(ctx, width, height) { ctx.clearRect(0, 0, width, height) TIME = (TIME + 1) % CYCLE var angle = SCALE * TIME // 当前正弦角度 var dAngle = 60 // 两个波峰相差的角度 ctx.beginPath() ctx.moveTo(0, height * 0.5 + distance(WAVE_HEIGHT, angle, 0)) ctx.bezierCurveTo( width * 0.4, height * 0.5 + distance(WAVE_HEIGHT, angle, dAngle), width * 0.6, height * 0.5 + distance(WAVE_HEIGHT, angle, 2 * dAngle), width, height * 0.5 + distance(WAVE_HEIGHT, angle, 3 * dAngle) ) ctx.strokeStyle = "#ff0000" ctx.stroke() ctx.beginPath() ctx.moveTo(0, height * 0.5 + distance(WAVE_HEIGHT, angle, -30)) ctx.bezierCurveTo( width * 0.3, height * 0.5 + distance(WAVE_HEIGHT, angle, dAngle - 30), width * 0.7, height * 0.5 + distance(WAVE_HEIGHT, angle, 2 * dAngle - 30), width, height * 0.5 + distance(WAVE_HEIGHT, angle, 3 * dAngle - 30) ) ctx.strokeStyle = "#0000ff" ctx.stroke() function distance(height, currAngle, diffAngle) { return height * Math.cos((((currAngle - diffAngle) % 360) * Math.PI) / 180) } // animate window.requestAnimationFrame(function() { draw(ctx, width, height) }) } initCanvas() </script>
感谢各位的阅读!看完上述内容,你们对canvas波浪效果怎么弄大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道。
当前文章:canvas波浪效果怎么弄
URL地址:https://www.cdcxhl.com/article30/ihgiso.html
成都网站建设公司_创新互联,为您提供面包屑导航、标签优化、企业建站、ChatGPT、建站公司、外贸网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联