From 95ed9e19668ead31a40fcdf4e36732b5a6934c20 Mon Sep 17 00:00:00 2001 From: David Runge Date: Sun, 3 Jan 2016 17:33:08 +0100 Subject: AutoVisual/IGPTheGreatMosqueOfCordoba.pde: Adding 'The Great Mosque of Cordoba' as a class. --- AutoVisual/IGPTheGreatMosqueOfCordoba.pde | 290 ++++++++++++++++++++++++++++++ 1 file changed, 290 insertions(+) create mode 100644 AutoVisual/IGPTheGreatMosqueOfCordoba.pde diff --git a/AutoVisual/IGPTheGreatMosqueOfCordoba.pde b/AutoVisual/IGPTheGreatMosqueOfCordoba.pde new file mode 100644 index 0000000..df4e8ed --- /dev/null +++ b/AutoVisual/IGPTheGreatMosqueOfCordoba.pde @@ -0,0 +1,290 @@ +class IGPTheGreatMosqueOfCordoba extends IGPSquare{ + + PVector[][] cornerPieces; + PVector[][] sidePieces; + PVector[][] starPieces; + PVector[][] verticalVs; + PVector[][] horizontalVs; + ArrayList middleStar; + IGPTheGreatMosqueOfCordoba(float x, float y, float d){ + super(x, y, d, 12); + setInterlacingVs(); + setSidePieces(); + setCornerPieces(); + setStarPieces(); + setMiddleStar(); + } + + void setInterlacingVs(){ + PVector[] vectors = new PVector[2]; + verticalVs = new PVector[4][2]; + horizontalVs = new PVector[4][2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(315), mid.y-radius, true); + vectors[1] = getVectorOnAlphaCircle(90); + verticalVs[0] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(225), mid.y-radius, true); + vectors[1] = getVectorOnAlphaCircle(90); + verticalVs[1] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), mid.y+radius, true); + vectors[1] = getVectorOnAlphaCircle(270); + verticalVs[2] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), mid.y+radius, true); + vectors[1] = getVectorOnAlphaCircle(270); + verticalVs[3] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), mid.x+radius, false); + vectors[1] = getVectorOnAlphaCircle(180); + horizontalVs[0] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), mid.x+radius, false); + vectors[1] = getVectorOnAlphaCircle(180); + horizontalVs[1] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(225), mid.x-radius, false); + vectors[1] = getVectorOnAlphaCircle(0); + horizontalVs[2] = vectors; + vectors = new PVector[2]; + vectors[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(135), mid.x-radius, false); + vectors[1] = getVectorOnAlphaCircle(0); + horizontalVs[3] = vectors; + } + + void setMiddleStar(){ + middleStar = new ArrayList (16); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45))); + middleStar.add(getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90))); + } + + void setCornerPieces(){ + cornerPieces = new PVector[4][4]; + PVector[] cornerPiece = new PVector[4]; + cornerPiece[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), mid.x+radius, false); + cornerPiece[1] = new PVector(mid.x+radius, mid.y+radius); + cornerPiece[2] = getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), mid.y+radius, true); + cornerPiece[3] = getVectorOnAlphaCircle(45); + cornerPieces[0] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = getVectorOnAlphaCircle(135); + cornerPiece[1] = getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135), mid.y+radius, true); + cornerPiece[2] = new PVector(mid.x-radius, mid.y+radius); + cornerPiece[3] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(135), mid.x-radius, false); + cornerPieces[1] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = getVectorOnAlphaCircle(225); + cornerPiece[1] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(225), mid.y-radius, true); + cornerPiece[2] = new PVector(mid.x-radius, mid.y-radius); + cornerPiece[3] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(225), mid.x-radius, false); + cornerPieces[2] = cornerPiece; + cornerPiece = new PVector[4]; + cornerPiece[0] = new PVector(mid.x+radius, mid.y-radius); + cornerPiece[1] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), mid.x+radius, false); + cornerPiece[2] = getVectorOnAlphaCircle(315); + cornerPiece[3] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(315), mid.y-radius, true); + cornerPieces[3] = cornerPiece; + } + + void setSidePieces(){ + sidePieces = new PVector[8][4]; + PVector[] sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), mid.x+radius, false); + sidePiece[1] = getVectorOnAlphaCircle(0); + sidePiece[2] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + sidePiece[3] = getVectorOnAlphaCircle(315); + sidePieces[0] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnAlphaCircle(0); + sidePiece[1] = getVectorOnExtendedLine(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), mid.x+radius, false); + sidePiece[2] = getVectorOnAlphaCircle(45); + sidePiece[3] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0)); + sidePieces[1] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), mid.y+radius, true); + sidePiece[1] = getVectorOnAlphaCircle(90); + sidePiece[2] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0)); + sidePiece[3] = getVectorOnAlphaCircle(45); + sidePieces[2] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnAlphaCircle(90); + sidePiece[1] = getVectorOnExtendedLine(getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(135), mid.y+radius, true); + sidePiece[2] = getVectorOnAlphaCircle(135); + sidePiece[3] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + sidePieces[3] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + sidePiece[1] = getVectorOnAlphaCircle(135); + sidePiece[2] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(135), mid.x-radius, false); + sidePiece[3] = getVectorOnAlphaCircle(180); + sidePieces[4] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90)); + sidePiece[1] = getVectorOnAlphaCircle(180); + sidePiece[2] = getVectorOnExtendedLine(getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(225), mid.x-radius, false); + sidePiece[3] = getVectorOnAlphaCircle(225); + sidePieces[5] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnAlphaCircle(270); + sidePiece[1] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + sidePiece[2] = getVectorOnAlphaCircle(225); + sidePiece[3] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(225), mid.y-radius, true); + sidePieces[6] = sidePiece; + sidePiece = new PVector[4]; + sidePiece[0] = getVectorOnExtendedLine(getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(315), mid.y-radius, true); + sidePiece[1] = getVectorOnAlphaCircle(315); + sidePiece[2] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45)); + sidePiece[3] = getVectorOnAlphaCircle(270); + sidePieces[7] = sidePiece; + } + + void setStarPieces(){ + starPieces = new PVector[8][4]; + PVector[] starPiece = new PVector[4]; + starPiece[0] = getVectorOnAlphaCircle(315); + starPiece[1] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45)); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315)); + starPieces[0] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getVectorOnAlphaCircle(0); + starPiece[1] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPieces[1] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + starPiece[1] = getVectorOnAlphaCircle(45); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPieces[2] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(90)); + starPiece[1] = getVectorOnAlphaCircle(90); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + starPieces[3] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(135), getVectorOnAlphaCircle(0)); + starPiece[1] = getVectorOnAlphaCircle(135); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45)); + starPieces[4] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[1] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(45), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[2] = getVectorOnAlphaCircle(180); + starPiece[3] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90)); + starPieces[5] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[1] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(90)); + starPiece[3] = getVectorOnAlphaCircle(225); + starPieces[6] = starPiece; + starPiece = new PVector[4]; + starPiece[0] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(45)); + starPiece[1] = getLineIntersection(getVectorOnAlphaCircle(180), getVectorOnAlphaCircle(315), getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0)); + starPiece[2] = getLineIntersection(getVectorOnAlphaCircle(225), getVectorOnAlphaCircle(0), getVectorOnAlphaCircle(270), getVectorOnAlphaCircle(135)); + starPiece[3] = getVectorOnAlphaCircle(270); + 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; j