UNPKG

alecmce-primitivesjs

Version:

A small library for visualizing the prime factor decomposition of numbers.

41 lines (40 loc) 1.49 kB
"use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var MULTIPLIER = 1.25; var PHI = (Math.sqrt(5) + 1) / 2; var PHI_2PI = PHI * 2 * Math.PI; var Fibonacci = (function () { function Fibonacci(count, drawCircle, color, padding, child) { this.count = count; this.drawCircle = drawCircle; this.color = color; this.padding = padding; this.child = child; this.offset = child.radius + padding / 2; this.radius = Math.sqrt(count) * MULTIPLIER * this.offset + child.radius + padding; } Fibonacci.prototype.draw = function (config) { var container = config.container, x = config.x, y = config.y; var group = this.drawCircle(__assign({}, config, { radius: this.radius, color: this.color, stroke: true })); for (var i = 1; i <= this.count; ++i) { var r = Math.sqrt(i) * MULTIPLIER * this.offset; var theta = i * PHI_2PI; this.child.draw({ container: group, x: Math.cos(theta) * r, y: -Math.sin(theta) * r, }); } return group; }; return Fibonacci; }()); exports.Fibonacci = Fibonacci;