class IGPHexagon extends IGPFamily{ IGPHexagon(float x, float y, float d){ super(x, y, d); setVectorsOnAlphaCircle(); setConstructionCircleCenters(); setVectorsOnConstructionCircles(); } void setConstructionCircleCenters(){ constructionCircleCenters = new ArrayList (4); constructionCircleCenters.add(alphaCircleVectors.get(0)); constructionCircleCenters.add(alphaCircleVectors.get(2)); constructionCircleCenters.add(alphaCircleVectors.get(4)); constructionCircleCenters.add(alphaCircleVectors.get(6)); constructionCircleCenters.add(alphaCircleVectors.get(8)); constructionCircleCenters.add(alphaCircleVectors.get(10)); } void setVectorsOnConstructionCircles(){ int amount = 12; outerSquareVectors = new ArrayList (12); // 0° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(0), 0)); // 30° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(1), 0)); // 60° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(1), 60)); // 90° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(1), 120)); // 120° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(2), 120)); // 150° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(3), 120)); // 180° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(3), 180)); // 210° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(4), 180)); // 240° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(4), 240)); // 270° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(4), 300)); // 300° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(5), 300)); // 330° outerSquareVectors.add(getVectorOnCircle(constructionCircleCenters.get(5), 0)); } void createDividingConstructionLines(int amount){ stroke(0.66, 0.66, 0.66, 0.4); createLine(outerSquareVectors.get(0), outerSquareVectors.get(6)); createLine(outerSquareVectors.get(1), outerSquareVectors.get(7)); createLine(outerSquareVectors.get(2), outerSquareVectors.get(8)); createLine(outerSquareVectors.get(3), outerSquareVectors.get(9)); createLine(outerSquareVectors.get(4), outerSquareVectors.get(10)); createLine(outerSquareVectors.get(5), outerSquareVectors.get(11)); } void createDividingLines(int amount){ stroke(0.0, 0.66, 0.0, 0.4); createLine(alphaCircleVectors.get(0), alphaCircleVectors.get(6)); createLine(alphaCircleVectors.get(1), alphaCircleVectors.get(7)); createLine(alphaCircleVectors.get(2), alphaCircleVectors.get(8)); createLine(alphaCircleVectors.get(3), alphaCircleVectors.get(9)); createLine(alphaCircleVectors.get(4), alphaCircleVectors.get(10)); createLine(alphaCircleVectors.get(5), alphaCircleVectors.get(11)); } void display() { super.display(); createDividingLines(12); createInnerHexagon(); } void displayConstructionLines(){ super.displayConstructionLines(); createDividingConstructionLines(12); } }