UNPKG

gibbon.js

Version:

Actor/Component system for use with pixi.js.

37 lines 1.21 kB
import { Point, Polygon } from "pixi.js"; /** * Return random point in Rectangle. * @param {Rectangle} r * @returns {Point} */ export const randInRect = (r) => { return new Point(r.x + Math.random() * r.width, r.y + Math.random() * r.height); }; /** * @returns {number} random integer in min,max inclusive */ export const randInt = (min, max) => { return min + Math.floor(Math.random() * (max + 1 - min)); }; /** * @returns Random float f, min <= f < max */ export const randFloat = (min, max) => { return min + (Math.random() * (max - min)); }; /** * Create random polygon centered on 0,0. * @param {number} minPoints * @param {number} maxPoints * @param {number} minRadius * @param {number} maxRadius */ export function randPoly(minPoints = 3, maxPoints = 4, minRadius = 4, maxRadius = 10) { const len = randInt(minPoints, maxPoints); const step = 2 * Math.PI / maxPoints; const pts = new Array(len); let theta = 0; for (let i = 0; i < len; i++) { const r = minRadius + Math.random() * (maxRadius - minRadius); pts[i] = new Point(r * Math.cos(theta), r * Math.sin(theta)); theta += step; } return new Polygon(pts); } //# sourceMappingURL=rand.js.map