From 24b14716a3ddadc15bfc4f2675990cceedf50e03 Mon Sep 17 00:00:00 2001 From: David Runge Date: Mon, 4 Jan 2016 21:42:51 +0100 Subject: AutoVisual/IGPTheGreatMosqueOfKairouan.pde: Adding class for The Great Mosque of Kairouan. A Square based class. --- AutoVisual/IGPTheGreatMosqueOfKairouan.pde | 406 +++++++++++++++++++++++++++++ 1 file changed, 406 insertions(+) create mode 100644 AutoVisual/IGPTheGreatMosqueOfKairouan.pde (limited to 'AutoVisual') diff --git a/AutoVisual/IGPTheGreatMosqueOfKairouan.pde b/AutoVisual/IGPTheGreatMosqueOfKairouan.pde new file mode 100644 index 0000000..3dc58cf --- /dev/null +++ b/AutoVisual/IGPTheGreatMosqueOfKairouan.pde @@ -0,0 +1,406 @@ +class IGPTheGreatMosqueOfKairouan extends IGPSquare{ + + PVector[][] cornerPieces; + PVector[][] sidePieces; + PVector[][] middlePieces; + PVector[][] starPieces; + ArrayList middleStar; + + IGPTheGreatMosqueOfKairouan(float x, float y, float d){ + super(x, y, d, 0); + setVectorsOnOuterSquare(); + setCornerPieces(); + setSidePieces(); + setMiddlePieces(); + setStarPieces(); + setMiddleStar(); + } + + void setVectorsOnOuterSquare(){ + vectorsOnOuterSquare = new ArrayList (24); + vectorsOnOuterSquare.add(alphaCircleVectors.get(0)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(0)), getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(90)), mid.x+radius, false)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(45), mid.x+radius, false)); + vectorsOnOuterSquare.add(new PVector(mid.x+radius, mid.y+radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(45), mid.y+radius, true)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(0)), getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(0)), mid.y+radius, true)); + vectorsOnOuterSquare.add(new PVector(mid.x, mid.y+radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(90)), getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(270)), mid.y+radius, true)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(135), mid.y+radius, true)); + vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y+radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), mid.x-radius, false)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(180)), getLineIntersection(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(45)), mid.x-radius, false)); + vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(225)), getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(45)), mid.x-radius, false)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(225), mid.x-radius, false)); + vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y-radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(225), mid.y-radius, true)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(270)), getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(45)), mid.y-radius, true)); + vectorsOnOuterSquare.add(new PVector(mid.x, mid.y-radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(0)), getLineIntersection(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(45)), mid.y-radius, true)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), mid.y-radius, true)); + vectorsOnOuterSquare.add(new PVector(mid.x+radius, mid.y-radius)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(315), mid.x+radius, false)); + vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(0)), getLineIntersection(getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(270)), mid.x+radius, false)); + } + + void setMiddleStar(){ + middleStar = new ArrayList (16); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5))); + middleStar.add(getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5))); + } + + void setCornerPieces(){ + cornerPieces = new PVector[4][4]; + PVector[] cornerPiece = new PVector[4]; + cornerPiece[0] = vectorsOnOuterSquare.get(2); + cornerPiece[1] = vectorsOnOuterSquare.get(3); + cornerPiece[2] = vectorsOnOuterSquare.get(4); + cornerPiece[3] = getVectorOnAlphaCircle(45); + cornerPieces[0] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = vectorsOnOuterSquare.get(8); + cornerPiece[1] = vectorsOnOuterSquare.get(9); + cornerPiece[2] = vectorsOnOuterSquare.get(10); + cornerPiece[3] = getVectorOnAlphaCircle(135); + cornerPieces[1] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = vectorsOnOuterSquare.get(14); + cornerPiece[1] = vectorsOnOuterSquare.get(15); + cornerPiece[2] = vectorsOnOuterSquare.get(16); + cornerPiece[3] = getVectorOnAlphaCircle(225); + cornerPieces[2] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = vectorsOnOuterSquare.get(20); + cornerPiece[1] = vectorsOnOuterSquare.get(21); + cornerPiece[2] = vectorsOnOuterSquare.get(22); + cornerPiece[3] = getVectorOnAlphaCircle(315); + cornerPieces[3] = cornerPiece; + } + + void setSidePieces(){ + sidePieces = new PVector[8][6]; + PVector[] sidePiece = new PVector[6]; + sidePiece[0] = vectorsOnOuterSquare.get(0); + sidePiece[1] = vectorsOnOuterSquare.get(2); + sidePiece[2] = getVectorOnAlphaCircle(45); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(4)); + sidePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(6)); + sidePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(4)); + sidePieces[0] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = getVectorOnAlphaCircle(45); + sidePiece[1] = vectorsOnOuterSquare.get(4); + sidePiece[2] = vectorsOnOuterSquare.get(6); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + sidePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + sidePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + sidePieces[1] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = vectorsOnOuterSquare.get(6); + sidePiece[1] = vectorsOnOuterSquare.get(8); + sidePiece[2] = getVectorOnAlphaCircle(135); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(22)); + sidePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(22)); + sidePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + sidePieces[2] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = getVectorOnAlphaCircle(135); + sidePiece[1] = vectorsOnOuterSquare.get(10); + sidePiece[2] = vectorsOnOuterSquare.get(12); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1)); + sidePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20)); + sidePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(12)); + sidePieces[3] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = getVectorOnAlphaCircle(225); + sidePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + sidePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13)); + sidePiece[4] = vectorsOnOuterSquare.get(12); + sidePiece[5] = vectorsOnOuterSquare.get(14); + sidePieces[4] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = vectorsOnOuterSquare.get(18); + sidePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + sidePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16)); + sidePiece[4] = getVectorOnAlphaCircle(225); + sidePiece[5] = vectorsOnOuterSquare.get(16); + sidePieces[5] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = getVectorOnAlphaCircle(315); + sidePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10)); + sidePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10)); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + sidePiece[4] = vectorsOnOuterSquare.get(18); + sidePiece[5] = vectorsOnOuterSquare.get(20); + sidePieces[6] = sidePiece; + sidePiece = new PVector[6]; + sidePiece[0] = vectorsOnOuterSquare.get(22); + sidePiece[1] = vectorsOnOuterSquare.get(0); + sidePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13)); + sidePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13)); + sidePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + sidePiece[5] = getVectorOnAlphaCircle(315); + sidePieces[7] = sidePiece; + } + + void setMiddlePieces(){ + middlePieces = new PVector[8][6]; + PVector[] middlePiece = new PVector[6]; + middlePiece[0] = vectorsOnOuterSquare.get(0); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(4)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(6)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13)); + middlePieces[0] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = getVectorOnAlphaCircle(45); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16)); + middlePieces[1] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = vectorsOnOuterSquare.get(6); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + middlePieces[2] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = getVectorOnAlphaCircle(135); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(10)); + middlePieces[3] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = vectorsOnOuterSquare.get(12); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(12)); + middlePieces[4] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = getVectorOnAlphaCircle(225); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(16)); + middlePieces[5] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = getVectorOnAlphaCircle(270); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(18)); + middlePieces[6] = middlePiece; + middlePiece = new PVector[6]; + middlePiece[0] = getVectorOnAlphaCircle(315); + middlePiece[1] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + middlePiece[2] = getLineIntersection(vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + middlePiece[3] = getLineIntersection(vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + middlePiece[4] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + middlePiece[5] = getLineIntersection(vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(22)); + middlePieces[7] = middlePiece; + } + + void setStarPieces(){ + starPieces = new PVector[8][4]; + PVector[] starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(6)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + starPieces[0] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(5), vectorsOnOuterSquare.get(19)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(11)); + starPieces[1] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(4), vectorsOnOuterSquare.get(14)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(12)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4)); + starPieces[2] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(11), vectorsOnOuterSquare.get(1)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4)); + starPieces[3] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(12), vectorsOnOuterSquare.get(14), vectorsOnOuterSquare.get(4)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7)); + starPieces[4] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(6), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(17)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(17), vectorsOnOuterSquare.get(7), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + starPieces[5] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(20), vectorsOnOuterSquare.get(10), vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2)); + starPieces[6] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(vectorsOnOuterSquare.get(18), vectorsOnOuterSquare.get(0), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + starPiece[1] = getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(22), vectorsOnOuterSquare.get(8)); + starPiece[2] = getLineIntersection(vectorsOnOuterSquare.get(16), vectorsOnOuterSquare.get(2), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + starPiece[3] = getLineIntersection(vectorsOnOuterSquare.get(23), vectorsOnOuterSquare.get(13), vectorsOnOuterSquare.get(19), vectorsOnOuterSquare.get(5)); + starPieces[7] = starPiece; + } + + void createMiddleStar(){ + useStrokeColor(); + useFillColor(); + beginShape(); + for (PVector middleStarVector: middleStar) { + vertex(middleStarVector.x, middleStarVector.y); + } + endShape(); + } + + void createCornerPieces(){ + useStrokeColor(); + useFillColor(); + for(int i=0; i0){ + beginShape(); + for(int j=0; j0){ + beginShape(); + for(int j=0; j0){ + beginShape(); + for(int j=0; j0){ + beginShape(); + for(int j=0; j