@tsparticles/plugin-emitters-shape-circle
Version:
tsParticles emitters shape circle plugin
2 lines • 1.87 kB
JavaScript
/*! For license information please see tsparticles.plugin.emitters.shape.circle.min.js.LICENSE.txt */
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"),require("@tsparticles/plugin-emitters"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine","@tsparticles/plugin-emitters"],t);else{var r="object"==typeof exports?t(require("@tsparticles/engine"),require("@tsparticles/plugin-emitters")):t(e.window,e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,((e,t)=>(()=>{var r={303:t=>{t.exports=e},526:e=>{e.exports=t}},o={};function i(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,i),n.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};i.r(n),i.d(n,{loadEmittersShapeCircle:()=>u});var s=i(303),a=i(526);const p=.25,c=2*Math.PI;class l extends a.EmitterShapeBase{constructor(e,t,r,o){super(e,t,r,o)}async init(){}randomPosition(){const e=this.size,t=this.fill,r=this.position,[o,i]=[.5*e.width,.5*e.height],n=((e,t)=>{const r=(0,s.getRandom)()*p,o=Math.atan(t/e*Math.tan(c*r)),i=(0,s.getRandom)();return i<p?o:i<.5?Math.PI-o:i<.75?Math.PI+o:-o})(o,i),a=(f=n,(d=o)*(u=i)/Math.sqrt((u*Math.cos(f))**2+(d*Math.sin(f))**2)),l=t?a*Math.sqrt((0,s.getRandom)()):a;var d,u,f;return{position:{x:r.x+l*Math.cos(n),y:r.y+l*Math.sin(n)}}}}class d{generate(e,t,r,o){return new l(e,t,r,o)}}async function u(e,t=!0){const r=e;(0,s.assertValidVersion)(r,"3.7.1"),r.addEmitterShapeGenerator?.("circle",new d),await r.refresh(t)}return n})()));