SimplexNoise实现线条波动跳跃交互动画效果
代码语言:html
所属分类:动画
代码描述:SimplexNoise实现线条波动跳跃交互动画效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <style> * { margin: 0; padding: 0; } html, body { overflow: hidden; } body { position: relative; background: #000; } p { padding-bottom: 0.4rem; } ul > li { list-style: none; padding: 0.4rem 0; } .desc { margin: 1.6rem; top: 0; left: 0; color: #fff; position: absolute; padding: 0.8rem; } </style> </head> <body translate="no" > <div class="desc"> <p>Simplex Noise.</p> <ul> <li>Click : Add line.</li> <li>Mousemove Y : Noise Amplitude.</li> <li><button id="reset">Reset</button></li> </ul> </div> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/simplex-noise.min.js"></script> <script> /* * File Name / simplexWave.js * Created Date / Sep 15, 2020 * Aurhor / Toshiya Marukubo * Twitter / https://twitter.com/toshiyamarukubo */ /* Common Tool. */ class Tool { // random number. static randomNumber(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } // random color rgb. static randomColorRGB() { return ( "rgb(" + this.randomNumber(0, 255) + ", " + this.randomNumber(0, 255) + ", " + this.randomNumber(0, 255) + ")"); } // random color hsl. static randomColorHSL(hue, saturation, lightness) { return ( "hsl(" + hue + ", " + saturation + "%, " + lightness + "%)"); } // gradient color. static gradientColor(ctx, cr, cg, cb, ca, x, y, r) { const col = cr + "," + cg + "," + cb; const g = ctx.createRadialGradient(x, y, 0, x, y, r); g.addColorStop(0, "rgba(" + col + ", " + ca * 1 + ")"); g.addColorStop(0.5, "rgba(" + col + ", " + ca * 0.5 + ")"); g.addColorStop(1, "rgba(" + col + ", " + ca * 0 + ")"); return g; }} /* When want to use angle. */ class Angle { constructor(angle) { this.a = angle; this.rad = this.a * Math.PI / 180; } incDec(num) { this.a += num; this.rad = this.a * Math.PI / 180; return this.rad; }} /* When want to use controller. */ class Controller { constructor(id) { this.id = document.getElementById(id); } getVal() { return this.id.value; }} /* When want to use time. */ class Time { constructor(time) { this.startTime = time; this.lastTime; this.elapsedTime; } getElapsedTime() { this.lastTime = Date.now(); this.elapsedTime = (this.startTime - this.lastTime) * -1; return this.elapsedTime; }} /* When want to use time. */ let canvas; const simplex = new SimplexNoise(); class Canvas { constructor(bool) { // create canvas. this.canvas = document.createElement("canvas"); // i.........完整代码请登录后点击上方下载按钮下载查看
网友评论0