Polygoner

Polygoner

Polygoner kallas även för månghörningar och är tvådimensionella figurer vars namn beror av hur många sidor och hörn den har.

Här ovan är en bild på fyra regelbundna månghörningar. Med regelbunden menas att alla sidor är lika långa och alla vinklar är lika stora i figuren.

En triangel har vinkelsumman 180 grader (60*3) En kvadrat har vinkelsumman 360 grader (90*4).
Vinkelsumman för en regelbunden polygon kan skrivas med formeln 180*(n-2) där n är antalet hörn.
För en triangel blir det då 180*(3 – 2) = 180
För en kvadrat 180 * (4 – 2) =360   och så vidare.

På bilden nedan är polygonerna indelade i trianglar. Varje triangel har vinkelsumman 180 grader och genom att dela in polygonerna på detta sätt ser man att formeln ovan stämmer.

Polygonerna är ritade inuti en cirkel för att visa att: ”För att få en sluten polygon måste figuren ritas ett helt varv dvs 360 grader.”

På bilden nedan har en annan vinkel ritats ut. Den vinkeln kallas supplementvinkel. En vinkel sägs vara supplementvinkel till en given vinkel om vinklarnas summa är 180°.

Summan av alla supplementvinklar på polygonen har alltid vinkelsumman 360 grader. När polygoner skapas med datorn är det de supplementvinkeln som anges. Man kan tänka på det som att datorn ritar en rät linje och sen behöver svänga ett visst antal grader för att kunna rita nästa linje i polygonen.

För sexhörningen så kan supplementvinkeln beräknas genom att först beräkna summan av alla inre vinklar 180 * (6-2)= 720    Varje vinkel i figuren är då 120 grader.  Inner vinkel plus supplementvinkel är 180 grader. Supplementvinkeln är 180-120 = 60 grader.
För sexhörningen görs sex vändningar (supplementvinklar) vilket är 6 * 60 = 360 grader.

Polygonen ritas genom att ett antal vertex (hörn) sätts ut vilka sen förbinds till en figur. För att rita med vertex används två funktioner:
beginShape() och endShape()


Här kan fler vertex läggas till för att förändra figuren. I funktionen endShape() står CLOSE. Det kommandot gör att figuren sluts med en linje mellan sista och första vertex.
 Prova att ta bort CLOSE och se skillnaden

I p5.js används något som heter radianer för att beräkna vinklar. För att istället använda grader måste det anges  genom att skriva:
angleMode(DEGREES);

För att kunna rita olika polygoner skapas en funktion med fyra parametrar.

function polygon(x, y, bredd, n_punkter) {
 angleMode(DEGREES);
 var vinkel = 360 / n_punkter;
 beginShape();
 for (var a = 0; a < 360; a += vinkel) {
   var sx = x + cos(a) * bredd;
   var sy = y + sin(a) * bredd;
   vertex(sx, sy);
 }
 endShape(CLOSE);
}

x och y anger var på canvasen centrum på polygonen ska vara, radie är polygonens radie och n_punkter är antal hörn på polygonen.
var vinkel är den vinkel som datorn ska svänga vid varje hörn.  En for-loop skapas som gör något för varje ny vinkel. Variablerna sx och sy (skulle kunna vara vilket variabelnamn som helst) är x resp y- värden för de nya hörn (vertex) som ska ritas ut. Här används trigonometriska begrepp som cos och sin. Om du inte känner till dem (gymnasiematematik) så får du bara se att formeln är så. Om du vill veta mer om dem kan du titta på matteboken.se
Funktionen skapas efter draw(). I draw kallar man sen på funktionen och anger de parametrar som anger den polygon som man vill rita. polygon(70,10,50,5); I det här fallet ritas en femhörning.


 Använd funktionen (genom att kalla på den i draw() ) för att rita ut fler olika polygoner.