zevenhoek lijnen
 
rode lijn = sd lijn (short diagonal)
groene lijn = ld lijn (long diagonal)
blauwe lijn = sdt lijn (loodlijn van sd lijn naar top)
licht blauwe lijn = ldb (lijn van ld lijn naar basis)
 

 

 

 

schets met 6 zevenhoeken
2 x in dp 8, 0 en 180 gr
2 x in dp 1, 0 en 180 gr
2 x in dp 7, 0 en 180 gr
 
 

 
 

 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
zevenhoek lijnenrode lijn = sd lijn (short diagonal)
groene lijn = ld lijn (long diagonal)
blauwe lijn = sdt lijn (loodlijn van sd lijn naar top)
licht blauwe lijn = ldb (lijn van ld lijn naar basis)
zevenhoek 00
 
zevenhoek "Vhoek_n7".
 

terug naar de inleiding       Ga naar de site met de formules met de heptagon calculator            voorbeeld met zes zevenhoeken

 
float ri = n/(2*tan(PI/7)); //straal van de binnencirkel
float ro = n/(2*sin(PI/7)); //straal van de buitencirkel
float h = ri+ro; //hoogte
float sd = 2*n*cos(PI/7); //sd (short diagonal) lijn met een tussenhoek
float ld = n/(2*sin(HALF_PI/7)); //ld (long diagonal) lijn met twee tussenhoeken
float sdt = sqrt(n*n-(sd*sd)/4); //sdt is de loodlijn van de sd lijn naar de top
loat ldb = sqrt((3*n*n-ld*ld)/4+ld*n/2); //ldb is de loodlijn van de ld lijn naar de basis
float vl13 = (h-sdt); //verticale lijn tussen hoek 1 en 3
float hl15 = sqrt(ld*ld-vl13*vl13); //horizontale lijn tussen hoek 1 en 5
float vl23 = (h-(ldb+sdt)); //verticale lijn tussen hoek 2 en 3
float hl23 = sqrt(n*n-vl23*vl23); //horizontale lijn tussen hoek 2 en 3
 
De algemene formule van de hoeken in graden van een regelmatige veelhoek is  (aantal hoeken-2) * 180 / aantal hoeken Hier is dat (7-2) * 180 / 7 ≈ 128,57°
 
 

class Vhoek_n7 extends Vormen { 
Vhoek_n7(float n_, int d_, float x_, float y_, float hoek_, color c1_) {  
 super();  
 n = n_;   
 x = x_;   
 y = y_;   
 hoek = hoek_;  
 c1 = c1_;  
 d = d_;  
 } 
void display() {  
 fill(c1);  
 // noStroke();  
 pushMatrix();  
 translate(x, y);  
 rotate(radians(hoek));    
 float ri = n/(2*tan(PI/7));  //straal van de binnencirkel 
 float ro = n/(2*sin(PI/7));  //straal van de buitencirkel 
 float h = ri+ro; 
 float sd = 2*n*cos(PI/7);    //sd (short diagonal) lijn met een tussenhoek 
 float ld = n/(2*sin(HALF_PI/7)); //ld = lange diagonaal lijn met twee tussenhoeken 
 float sdt = sqrt(n*n-(sd*sd)/4); //sdt is de lijn van de sd lijn naar de top 
 float ldb = sqrt((3*n*n-ld*ld)/4+ld*n/2);  //ldb is de lijn van de ld lijn naar de basis  
 float vl13 = (h-sdt);                //verticale lijn tussen hoek 1 en 3 
 float hl15 = sqrt(ld*ld-vl13*vl13);  //horizontale lijn tussen hoek 1 en 5  
 float vl23 = (h-(ldb+sdt)); 
 float hl23 = sqrt(n*n-vl23*vl23); 
 
 beginShape(); 
 if (d == 0) {vertex(-n/2,ri);        vertex(-ld/2,ri-ldb); vertex(-sd/2,-(ro-sdt)); vertex(0,-ro);  
              vertex(sd/2,-(ro-sdt)); vertex(ld/2,ri-ldb);  vertex(n/2, ri);} 
 
 if (d == 1) {vertex(0, 0);        vertex(-(ld-n)/2,-ldb); vertex(hl15-sd,-(vl13)); vertex(n/2,-h);  
              vertex(hl15, -vl13); vertex((ld+n)/2, -ldb); vertex(n, 0);} 
 
 if (d == 2) {vertex((ld-n)/2, ldb);  vertex(0, 0); vertex(hl23,-vl23); vertex(ld/2,-(vl23+sdt)); 
              vertex(sd+hl23, -vl23); vertex(ld, 0);vertex((ld+n)/2,ldb);}   
 
 if (d == 3) {vertex((sd-n)/2,h-sdt); vertex(-hl23,h-(ldb+sdt));  vertex(0,0); vertex(sd/2,-sdt); 
              vertex(sd, 0);          vertex(ld-hl23,h-(ldb+sdt));vertex((sd+n)/2,h-sdt);}   
 
 if (d == 4) {vertex(-n/2,h);    vertex(-ld/2,h-ldb); vertex(-sd/2,sdt); vertex(0,0); 
              vertex(sd/2, sdt); vertex(ld/2,h-ldb);  vertex(n/2,h);}    
 
 if (d == 5) {vertex(-hl15,h-sdt); vertex(-(ld-hl23),h-(ldb+sdt)); vertex(-sd,0); vertex(-sd/2,-sdt); 
              vertex(0, 0);        vertex(hl23,h-(ldb+sdt));       vertex(-(hl15-n),h-sdt);}   
 
 if (d == 6) {vertex(-(n+ld)/2,ldb);         vertex(-ld, 0); vertex(-(hl23+sd),-(h-(ldb+sdt))); vertex(-ld/2,-(h-ldb)); 
              vertex(-hl23, -(h-(ldb+sdt))); vertex(0,0);    vertex(-(ld-n)/2,ldb);}   
 
 if (d == 7) {vertex(-n,0);            vertex(-(n+ld)/2,-ldb); vertex(-hl15,-(h-sdt)); vertex(-n/2, -h); 
              vertex(hl15-n,-(h-sdt)); vertex((ld-n)/2,-ldb);  vertex(0,0);}    
 
 if (d == 8) {vertex(-n/2,0);        vertex(-ld/2,-ldb); vertex(-sd/2,-(h-sdt)); vertex(0, -h); 
              vertex(sd/2,-(h-sdt)); vertex(ld/2,-ldb);  vertex(n/2,0);}     
 endShape(CLOSE);  
 popMatrix();  
 }  
} 

 

schets voor de lijnen met binnen  en buitencirkel

 

 

Vormen vorm0; 
Vormen vorm1; 
Vormen vorm2; 
Vormen vorm3; 
Vormen vorm4; 
Vormen vorm5; 
Vormen vorm6; 
 
void setup() {  
  size(780, 560);  
 // fullScreen(); 
  float x = width/2; 
  float y = height/2; 
  float n = height/3; 
  float ri   = n/(2*tan(PI/7));  //straal van de binnencirkel 
  float ro   = n/(2*sin(PI/7));  //straal van de buitencirkel 
  float sd   = 2*n*cos(PI/7);                 //sd (short diagonal) lijn met een tussenhoek 
  float ld   = n/(2*sin(HALF_PI/7));          //ld (long diagonal) lijn met twee tussenhoeken 
  float sdt  = sqrt(n*n-(sd*sd)/4);           //sdt is de loodlijn van de sd lijn naar de top 
  float ldb  = sqrt((3*n*n-ld*ld)/4+ld*n/2);  //ldb is de loodlijn van de ld lijn naar de basis   
  vorm0 = new Vhoek_n7(n, 0, x, y, 0, color(255, 255, 0, 50)); 
  //sd lijn tussen hoek 3 en 5  
  vorm1 = new Rechthoek(sd, n/50, 2, x-sd/2, y-(ro-sdt), 0, color(255,0,0)); 
  //ld lijn tussen hoek 2 en 6 
  vorm2 = new Rechthoek(ld, n/50, 2, x-ld/2, y+ri-ldb, 0, color(0,255,0));    
  //loodlijn sdt van de sd lijn naar de top   
  vorm3 = new Rechthoek(sdt, n/50, 2, x, y-ro, 90, color(0,0,255));  
  //loodlijn ldb van de ld lijn naar de basis 
  vorm4 = new Rechthoek(ldb,n/50, 2, x, y+ri-ldb, 90, color(0,255,255));  
  //buitencirkel 
  vorm5 = new Ellips(ro, ro,0, x, y, 0, color(#DE905C, 0)); 
  //binnencirkel 
  vorm6 = new Ellips(ri, ri,0, x, y, 0, color(#DE905C, 0)); 
} 
 
void draw() { 
  background(#E6FBFF); 
  //assenstelsel 
  stroke(255, 0, 0); 
  line (width/2, 0, width/2, height); 
  line(0, height/2, width, height/2); 
  stroke(0);  
  vorm0.display(); 
  vorm1.display(); 
  vorm2.display(); 
  vorm3.display(); 
  vorm4.display(); 
  vorm5.display(); 
  vorm6.display(); 
}