js实现canvas五彩缤纷线条绘制抽象星空效果代码

代码语言:html

所属分类:粒子

代码描述:js实现canvas五彩缤纷线条绘制抽象星空效果代码

代码标签: 五彩缤纷 线条 绘制 抽象 星空 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>A colourful world of Turbulence</title>
<style>
    body{
        padding: 0;
        background: black;
        margin: 0;
    }
</style>

</head>
<body>

<script>
    "use strict";

/**
 * Written by Dillon https://codepen.io/Dillo
 *
 * Inspired in very large part by Alex Andrix's work on Codepen
 * https://codepen.io/alexandrix/pen/jgyWww
 * @author Alex Andrix <alex@alexandrix.com>
 * @since 2019
 */



  const nbEddies = 5;
  const nbParticles = 1000; // number of particles
  const lifeTime = 1000; // average lifetime of particles

  let canv, ctx;   // canvas and drawing context
  let maxx, maxy;  // size of client Window
  let dimx, dimy;  // size of canvas

  let eddies;      // array of eddies
  let particles;   // array of particles

  let requestID;   // ID provided by window.requestAnimationFrame();
  let hueShift;

/* shortcuts for Math */

  const mrandom = Math.random; // see above alternative function for reproductible results
  const mfloor = Math.floor;
  const mround = Math.round;
  const mceil = Math.ceil;
  const mabs = Math.abs;
  const mmin = Math.min;
  const mmax = Math.max;

  const mPI = Math.PI;
  const mPIS2 = Math.PI / 2;
  const m2PI = Math.PI * 2;
  const msin = Math.sin;
  const mcos = Math.cos;
  const matan2 = Math.atan2;
  const mexp = Math.exp;

  const mhypot = Math.hypot;
  const msqrt = Math.sqrt;

//-----------------------------------------------------------------------------
// miscellaneous functions
//-----------------------------------------------------------------------------

  function alea (min, max) {
// random number [min..max[ . If no max is provided, [0..min[

    if (typeof max == 'undefined') return min * mrandom();
    return min + (max - min) * mrandom();
  }

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  function intAlea (min, max) {
// random integer number [min..max[ . If no max is provided, [0..min[

    if (typeof max == 'undefined') {
      max = min; min = 0;
    }
    return mfloor(min + (max - min) * mrandom());
  } // intAlea

//------------------------------------------------------.........完整代码请登录后点击上方下载按钮下载查看

网友评论0