15% off sitewide. Code 15OFF.
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
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 circler = 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;
}
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 circletheta = 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;
}
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);
for (int counter = 0; counter < 5; counter ++) {
line(xOuter[counter], yOuter[counter], xOuter[counter +1], yOuter[counter +1]);
}
line(xOuter5, yOuter5, xOuter0, yOuter0);
for (int counter = 0; counter < 5; counter ++) {
line(xOuterMost[counter], yOuterMost[counter], xOuterMost[counter +1], yOuterMost[counter +1]);
}
line(xOuterMost5, yOuterMost5, xOuterMost0, yOuterMost0);
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
line(xInner1, yInner1, xInner5, yInner5); // bottom
line(xInner1, yInner1, xInner3, yInner3); // left
line(xInner5, yInner5, xInner3, yInner3); // right
line(xInner2, yInner2, xInner4, yInner4); // top
line(xInner4, yInner4, xInner0, yInner0); // right
line(xInner0, yInner0, xInner2, yInner2); // right
line(xOuter1, yOuter1, xOuter5, yOuter5); // bottom
line(xOuter1, yOuter1, xOuter3, yOuter3); // left
line(xOuter5, yOuter5, xOuter3, yOuter3); // right
line(xOuterMost1, yOuterMost1, xOuterMost5, yOuterMost5); // bottom
line(xOuterMost1, yOuterMost1, xOuterMost3, yOuterMost3); // left
line(xOuterMost5, yOuterMost5, xOuterMost3, yOuterMost3); // right
line(xOuter2, yOuter2, xOuter4, yOuter4); // top
line(xOuter4, yOuter4, xOuter0, yOuter0); // left
line(xOuter0, yOuter0, xOuter2, yOuter2); // right
line(xOuterMost2, yOuterMost2, xOuterMost4, yOuterMost4); // top
line(xOuterMost4, yOuterMost4, xOuterMost0, yOuterMost0); // left
line(xOuterMost0, yOuterMost0, xOuterMost2, yOuterMost2); // right
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
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);
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);
line(xNesting0, yNesting0, xNesting3, yNesting3); // Horozontal
line(xNesting1, yNesting1, xNesting4, yNesting4);
line(xNesting2, yNesting2, xNesting5, yNesting5);
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);
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);
save(“Matatrons-cube-expanded_011.png”);
exit();
}
rupertrussell code processing monochrome linear maths sacred geometry sacred geometry
Loading more work by Rupert Russell...
Artwork Comments
Very cool!
Glad you like it!