Metatron’s Cube Expanded 003

Rupert Russell

Ballarat, Australia

  • Available
    Products
    63
  • Artist
    Notes
  • Artwork Comments 2

Apparel

Cases & Skins

Wall Art

Home Decor

Accessories

Stationery

Artist's Description

Created with Processing
This version highlights the inner 6 pointed star

// Metatron’s Cube Expanded 011
// by Rupert Russell
// December 18 2018
// based on https://i.ytimg.com/vi/iQeXxu3-YNI/maxresdefaul...
// Artwork on Redbubble at: https://www.redbubble.com/people/rupertrussell/...
// this version highlights the large 6 pointed star
// MIT licence

int scale = 800;
float[] xInner = new float6;
float[] yInner = new float6;

float[] xOuter = new float6;
float[] yOuter = new float6;

float[] xOuterMost = new float6;
float[] yOuterMost = new float6;

float[] xNesting = new float6;
float[] yNesting = new float6;

float[] xTurningPoint = new float6;
float[] yTurningPoint = new float6;

int count = 0;
int sWeight = 20;

void setup() {
size(4625, 4625);
background(0);
stroke(255);
noLoop();
noFill();
strokeWeight(sWeight);
// strokeCap(SQUARE);
}

void draw() {
translate(width/2, height/2);
ellipse(0, 0, scale, scale); // inner circle

// calculate 6 points around the inner circle

float step = 2 * PI/6;
float r = scale ;
float theta = radians(90);
for (int count = 0; count < 6; count ++) {
xInner[count] = r * cos(theta);
yInner[count] = r * sin(theta);
ellipse(xInner[count], yInner[count], scale, scale);
theta = theta + step;
}

ellipse(0, 0, scale * 5, scale * 5); // outer guide circle

// calculate 6 points around the Outer circle

r = scale * 2 ;
for (int count = 0; count < 6; count ++) {
xOuter[count] = r * cos(theta);
yOuter[count] = r * sin(theta);
ellipse(xOuter[count], yOuter[count], scale, scale);
theta = theta + step;
}

// calculate last 6 points nesting between the inner circles

stroke(255, 0, 0);
theta = radians(0);
r = scale * 1.73205 ;
for (int count = 0; count < 6; count ++) {
xNesting [count] = r * cos(theta);
yNesting [count] = r * sin(theta);
// ellipse(xNesting [count], yNesting [count], 10, 10);
theta = theta + step;
}

stroke(255);

// calculate 6 points around the OuterMost circle

theta = radians(90);
r = scale * 2.5 ;
for (int count = 0; count < 6; count ++) {
xOuterMost[count] = r * cos(theta);
yOuterMost[count] = r * sin(theta);
// ellipse(xOuterMost[count], yOuterMost[count], scale, scale);
theta = theta + step;
}

//// markers//stroke(255, 0, 0);//strokeWeight(2);//ellipse(xInner0, yInner0, 10, 10);//ellipse(xOuter0, yOuter0, 10, 10);//ellipse(xOuterMost0, yOuterMost0, 10, 10);//stroke(255, 0, 255);//ellipse(xNesting0, yNesting0, 10, 10);//stroke(255);// 4 banding circles

ellipse(0, 0, scale * 2, scale * 2);
ellipse(0, 0, scale * 3, scale * 3);
ellipse(0, 0, scale * 4, scale * 4);
ellipse(0, 0, scale * 5, scale * 5);

// inner hexagon

for (int counter = 0; counter < 5; counter ++) {
line(xOuter[counter], yOuter[counter], xOuter[counter +1], yOuter[counter +1]);
}
line(xOuter5, yOuter5, xOuter0, yOuter0);

// Outer hexagon

for (int counter = 0; counter < 5; counter ++) {
line(xOuterMost[counter], yOuterMost[counter], xOuterMost[counter +1], yOuterMost[counter +1]);
}
line(xOuterMost5, yOuterMost5, xOuterMost0, yOuterMost0);

//3 connecting lines

line(xOuterMost3, yOuterMost3, xOuterMost0, yOuterMost0); // Central vertical line
line(xOuterMost1, yOuterMost1, xOuterMost4, yOuterMost4); // lower left to upper right
line(xOuterMost2, yOuterMost2, xOuterMost5, yOuterMost5); // upperleft to lower right

// inner triangle (1)

line(xInner1, yInner1, xInner5, yInner5); // bottom
line(xInner1, yInner1, xInner3, yInner3); // left
line(xInner5, yInner5, xInner3, yInner3); // right

// inner triangle (2)

line(xInner2, yInner2, xInner4, yInner4); // top
line(xInner4, yInner4, xInner0, yInner0); // right
line(xInner0, yInner0, xInner2, yInner2); // right

// outer triangle (3)

line(xOuter1, yOuter1, xOuter5, yOuter5); // bottom
line(xOuter1, yOuter1, xOuter3, yOuter3); // left
line(xOuter5, yOuter5, xOuter3, yOuter3); // right

// outerMost triangle (4)

line(xOuterMost1, yOuterMost1, xOuterMost5, yOuterMost5); // bottom
line(xOuterMost1, yOuterMost1, xOuterMost3, yOuterMost3); // left
line(xOuterMost5, yOuterMost5, xOuterMost3, yOuterMost3); // right

// outer triangle (5)

line(xOuter2, yOuter2, xOuter4, yOuter4); // top
line(xOuter4, yOuter4, xOuter0, yOuter0); // left
line(xOuter0, yOuter0, xOuter2, yOuter2); // right

// outerMost triangle (6)

line(xOuterMost2, yOuterMost2, xOuterMost4, yOuterMost4); // top
line(xOuterMost4, yOuterMost4, xOuterMost0, yOuterMost0); // left
line(xOuterMost0, yOuterMost0, xOuterMost2, yOuterMost2); // right

// Pairs

line(xOuter3, yOuter3, xInner1, yInner1); // left
line(xOuter3, yOuter3, xInner5, yInner5); // right

line(xOuter4, yOuter4, xInner2, yInner2); // left
line(xOuter4, yOuter4, xInner0, yInner0); // right

line(xOuter5, yOuter5, xInner3, yInner3); // left
line(xOuter5, yOuter5, xInner1, yInner1); // right

line(xOuter0, yOuter0, xInner4, yInner4); // left
line(xOuter0, yOuter0, xInner2, yInner2); // right

line(xOuter1, yOuter1, xInner3, yInner3); // left
line(xOuter1, yOuter1, xInner5, yInner5); // right

line(xOuter2, yOuter2, xInner0, yInner0); // left
line(xOuter2, yOuter2, xInner4, yInner4); // right

// Hexagram 1

line(xNesting0, yNesting0, xNesting4, yNesting4);
line(xNesting0, yNesting0, xNesting2, yNesting2);

line(xNesting1, yNesting1, xNesting3, yNesting3);
line(xNesting1, yNesting1, xNesting5, yNesting5); // right

line(xNesting1, yNesting1, xNesting3, yNesting3);
line(xNesting1, yNesting1, xNesting5, yNesting5);

line(xNesting2, yNesting2, xNesting4, yNesting4); // left
line(xNesting3, yNesting3, xNesting5, yNesting5);

// Hexagon

line(xNesting0, yNesting0, xNesting1, yNesting1);
line(xNesting1, yNesting1, xNesting2, yNesting2);
line(xNesting2, yNesting2, xNesting3, yNesting3);
line(xNesting3, yNesting3, xNesting4, yNesting4);
line(xNesting4, yNesting4, xNesting5, yNesting5);
line(xNesting5, yNesting5, xNesting0, yNesting0);

// final lines

line(xNesting0, yNesting0, xNesting3, yNesting3); // Horozontal
line(xNesting1, yNesting1, xNesting4, yNesting4);
line(xNesting2, yNesting2, xNesting5, yNesting5);

//println(" x Outer 1 = " + xOuter1 );//println(" x Nesting 0 = " + xNesting0 );// Locate turning points// calculate 6 points around the OuterMost circle

theta = step;
r = scale * 1.1547022 ;
for (int count = 0; count < 6; count ++) {
xTurningPoint[count] = r * cos(theta);
yTurningPoint[count] = r * sin(theta);
theta = theta + step;
}
// ellipse(0, 0, r, r);
// ellipse(xTurningPoint0, yTurningPoint0, 5, 5);
// trace thicker lines
strokeWeight(sWeight * 3);

line(xOuter0, yOuter0, xTurningPoint0, yTurningPoint0);
line(xOuter0, yOuter0, xTurningPoint1, yTurningPoint1);

line(xOuter1, yOuter1, xTurningPoint1, yTurningPoint1);
line(xOuter1, yOuter1, xTurningPoint2, yTurningPoint2);

line(xOuter2, yOuter2, xTurningPoint2, yTurningPoint2);
line(xOuter2, yOuter2, xTurningPoint3, yTurningPoint3);

line(xOuter3, yOuter3, xTurningPoint3, yTurningPoint3);
line(xOuter3, yOuter3, xTurningPoint4, yTurningPoint4);

line(xOuter4, yOuter4, xTurningPoint4, yTurningPoint4);
line(xOuter4, yOuter4, xTurningPoint5, yTurningPoint5);

line(xOuter5, yOuter5, xTurningPoint5, yTurningPoint5);
line(xOuter5, yOuter5, xTurningPoint0, yTurningPoint0);

// black inner hairline

strokeWeight(sWeight * 1.2);
stroke(0);

line(xOuter0, yOuter0, xTurningPoint0, yTurningPoint0);
line(xOuter0, yOuter0, xTurningPoint1, yTurningPoint1);

line(xOuter1, yOuter1, xTurningPoint1, yTurningPoint1);
line(xOuter1, yOuter1, xTurningPoint2, yTurningPoint2);

line(xOuter2, yOuter2, xTurningPoint2, yTurningPoint2);
line(xOuter2, yOuter2, xTurningPoint3, yTurningPoint3);

line(xOuter3, yOuter3, xTurningPoint3, yTurningPoint3);
line(xOuter3, yOuter3, xTurningPoint4, yTurningPoint4);

line(xOuter4, yOuter4, xTurningPoint4, yTurningPoint4);
line(xOuter4, yOuter4, xTurningPoint5, yTurningPoint5);

line(xOuter5, yOuter5, xTurningPoint5, yTurningPoint5);
line(xOuter5, yOuter5, xTurningPoint0, yTurningPoint0);

//println(" y Outer 1 = " + yOuter1 );//println(" y Nesting 3 = " + yTurningPoint3 );

save(“Matatrons-cube-expanded_011.png”);

exit();
}

Artwork Comments

desktop tablet-landscape content-width tablet-portrait workstream-4-across phone-landscape phone-portrait
desktop tablet-landscape content-width tablet-portrait workstream-4-across phone-landscape phone-portrait