pentagon = new FractalRoot();
for (let i=0; i<360; i+=72) {
let x = cx+(280*cos(radians(i)));
let y = cy+(280*sin(radians(i)));
this.pArray.push(new PointObj(x, y));
this.rootBranch = new Branch(0, 0, this.pArray);
this.rootBranch.drawMe();
constructor(lev, n, points) {
this.outerPoints = points;
this.midPoints = this.calcMidPoints();
this.projPoints = this.calcProjPoints();
strokeWeight(5-this.level);
for (let i=0; i<this.outerPoints.length; i++) {
if (nexti === this.outerPoints.length) {
line(this.outerPoints[i].x, this.outerPoints[i].y, this.outerPoints[nexti].x, this.outerPoints[nexti].y);
for (let j=0; j<this.midPoints.length; j++) {
ellipse(this.midPoints[j].x, this.midPoints[j].y, 15, 15);
line(this.midPoints[j].x, this.midPoints[j].y, this.projPoints[j].x, this.projPoints[j].y);
ellipse(this.projPoints[j].x, this.projPoints[j].y, 15, 15);
calcMidPoint(end1, end2) {
let mx = (end1.x + end2.x)/2;
let my = (end1.y + end2.y)/2;
let mp = new PointObj(mx, my);
for (let i=0; i<this.outerPoints.length; i++) {
if (nexti == this.outerPoints.length) {
let thisMP = this.calcMidPoint(this.outerPoints[i], this.outerPoints[nexti]);
let px = mp.x + ((op.x - mp.x) * _strutFactor);
let py = mp.y + ((op.y - mp.y) * _strutFactor);
let pp = new PointObj(px, py);
for (let i=0; i<this.midPoints.length; i++) {
let nexti = (i+3)%this.midPoints.length;
let thisPP = this.calcProjPoint(this.midPoints[i], this.outerPoints[nexti]);