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(alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(2), alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(0)), getLineIntersection(alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(4)), mid.x+radius, false)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(2), mid.x+radius, false)); vectorsOnOuterSquare.add(new PVector(mid.x+radius, mid.y+radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(0), alphaCircleVectorsSixteen.get(2), mid.y+radius, true)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(2), alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(0)), getLineIntersection(alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(0)), mid.y+radius, true)); vectorsOnOuterSquare.add(new PVector(mid.x, mid.y+radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(2), alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(4)), getLineIntersection(alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(12)), mid.y+radius, true)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(6), mid.y+radius, true)); vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y+radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(6), mid.x-radius, false)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(8)), getLineIntersection(alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(0), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(2)), mid.x-radius, false)); vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(10)), getLineIntersection(alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(0), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(2)), mid.x-radius, false)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(10), mid.x-radius, false)); vectorsOnOuterSquare.add(new PVector(mid.x-radius, mid.y-radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(10), mid.y-radius, true)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(12)), getLineIntersection(alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(2)), mid.y-radius, true)); vectorsOnOuterSquare.add(new PVector(mid.x, mid.y-radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(0)), getLineIntersection(alphaCircleVectorsSixteen.get(4), alphaCircleVectorsSixteen.get(0), alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(2)), mid.y-radius, true)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(0), alphaCircleVectorsSixteen.get(14), mid.y-radius, true)); vectorsOnOuterSquare.add(new PVector(mid.x+radius, mid.y-radius)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(14), mid.x+radius, false)); vectorsOnOuterSquare.add(getVectorOnExtendedLine(getLineIntersection(alphaCircleVectorsSixteen.get(14), alphaCircleVectorsSixteen.get(2), alphaCircleVectorsSixteen.get(12), alphaCircleVectorsSixteen.get(0)), getLineIntersection(alphaCircleVectorsSixteen.get(6), alphaCircleVectorsSixteen.get(10), alphaCircleVectorsSixteen.get(8), alphaCircleVectorsSixteen.get(12)), 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] = alphaCircleVectorsSixteen.get(2); cornerPieces[0] = cornerPiece; cornerPiece = new PVector[4]; cornerPiece[0] = vectorsOnOuterSquare.get(8); cornerPiece[1] = vectorsOnOuterSquare.get(9); cornerPiece[2] = vectorsOnOuterSquare.get(10); cornerPiece[3] = alphaCircleVectorsSixteen.get(6); cornerPieces[1] = cornerPiece; cornerPiece = new PVector[4]; cornerPiece[0] = vectorsOnOuterSquare.get(14); cornerPiece[1] = vectorsOnOuterSquare.get(15); cornerPiece[2] = vectorsOnOuterSquare.get(16); cornerPiece[3] = alphaCircleVectorsSixteen.get(10); cornerPieces[2] = cornerPiece; cornerPiece = new PVector[4]; cornerPiece[0] = vectorsOnOuterSquare.get(20); cornerPiece[1] = vectorsOnOuterSquare.get(21); cornerPiece[2] = vectorsOnOuterSquare.get(22); cornerPiece[3] = alphaCircleVectorsSixteen.get(14); 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] = alphaCircleVectorsSixteen.get(2); 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] = alphaCircleVectorsSixteen.get(2); 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] = alphaCircleVectorsSixteen.get(6); 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] = alphaCircleVectorsSixteen.get(6); 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] = alphaCircleVectorsSixteen.get(10); 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] = alphaCircleVectorsSixteen.get(10); sidePiece[5] = vectorsOnOuterSquare.get(16); sidePieces[5] = sidePiece; sidePiece = new PVector[6]; sidePiece[0] = alphaCircleVectorsSixteen.get(14); 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] = alphaCircleVectorsSixteen.get(14); 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] = alphaCircleVectorsSixteen.get(2); 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] = alphaCircleVectorsSixteen.get(6); 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] = alphaCircleVectorsSixteen.get(10); 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] = alphaCircleVectorsSixteen.get(12); 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] = alphaCircleVectorsSixteen.get(14); 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