alecmce-primitivesjs
Version:
A small library for visualizing the prime factor decomposition of numbers.
41 lines (40 loc) • 1.49 kB
JavaScript
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;
;