Trigonometri, regulære mangekanter og stjerner
Skrevet av: Sigmund Hansen
Introduksjon
Nå som du kan tegne mangekanter (hvis du ikke har gjort leksjonen om mangekanter, bør du gjøre dem først), skal vi se på en litt spesiell type mangekanter: de regulære mangekantene. Det vil si de mangekantene hvor lengden av hver kant er lik og vinkelen i hvert hjørne er lik. Vi skal også tegne deres nære slektninger, de regulære stjernene.
Det er en stor fordel å kunne litt trigonometri før man slår seg løs på disse oppgavene, men vi skal prøve å gi korte forklaringer av de konseptene som brukes i leksjonen.
Sinus og cosinus
Før vi begynner å tegne regulære mangekanter, skal vi bare ta en titt på to trigonometriske funksjoner som vi kommer til å bruke mye: sinus og cosinus. Vi skal se på dem spesifikt i forbindelse med sirkler.
- Ethvert punkt langs omrisset av sirkelen befinner seg like langt fra midten av sirkelen. Denne avstanden er radius i sirkelen, som regel skriver vi bare
r
i figurer og formler.

- Vi kan tegne en rettvinklet trekant som ligger vannrett og strekker seg fra midten av sirkelen til ett av disse punktene.

-
Hvis vi sier at sentrum av sirkelen ligger i punktet (0, 0), altså X og Y er null i midten av sirkelen, kan vi enkelt regne ut X og Y for punktet i omrisset. To av sidene i trekanten ovenfor viser da X og Y. Den siste siden er linjen fra sentrum med lengde
r
. Derfor har vi kalt sidenex
,y
ogr
; navnet kan brukes for lengdene til sidene også. For vinkler er det vanlig å bruke greske bokstaver, og vi har her bruktα
, alfa. -
Lengden på sidene
x
ogy
er gitt av funksjonene sinus og cosinus, vinkelenα
ogr
, altså radien til sirkelen. De korte sidene som sammen lager det rettvinklede hjørnet, kalles kateter og den lange siden med lengder
kalles hypotenus. Lengden på kateten som er med på hjørnet med vinkelenα
, har lengdencos(α) * r
. Denne kateten kalles gjerne den hosliggende kateten, og mange bruker huskeregelen: Hos blir cos, for å huske hvilken av de to sidene som bruker cosinus og sinus. Lengden på den andre kateten, kalt den motstående kateten ersin(α) * r
.

- Det virker kanskje litt merkelig når du bare får formlene sånn, men sinus og cosinus er definert som forholdene mellom hypotenusen,
r
, og katetene,x
ogy
.sin(α) = y / r
ogcos(α) = x / r
. Vi skal ikke se på hvordan man finner disse tallene ut fra vinkelen, men det skal vi la datamaskinen gjøre for oss.
Regulære mangekanter
La oss tegne opp noen regulære mangekanter. Det vil si mangekanter der avstanden mellom hvert hjørne er lik, altså de er likesidede, og vinkelen i hvert hjørne er lik, altså de er likevinklede. Da lurer du kanskje på hvordan du skal få til dette. Hjørnene i en regulær mangekant fordeler seg jevnt langs omrisset av en sirkel. Derfor kan vi bruke formlene for katetene for å regne ut hvor hjørnene skal være. Opptegningen ellers er som for vanlige mangekanter.
-
int KANTER = 5; float vinkel = 360.0 / KANTER; void setup() { size(600, 600); } void draw() { background(0); beginShape(); for (int hjorne = 0; hjorne < KANTER; hjorne++) { vertex(300 + cos(radians(vinkel * hjorne)) * 200, 300 + sin(radians(vinkel * hjorne)) * 200); } endShape(CLOSE); }
Her har vi noen nye utregninger inne i kallet på
vertex
. Her bruker vi tre nye funksjonercos
ogsin
som har blitt forklart lenger opp, ogradians
som regner grader om til radianer, en annen måleenhet for vinkler.I dataprogrammer bruker sinus og cosinus vanligvis radianer, så om vi vil jobbe med vinkler i grader, må vi gjør denne konverteringen. Du ser at vi har med en variabel for vinkelen mellom hvert punkt og denne har vi beregnet i grader ut fra at en sirkel er 360°.
Til slutt forteller
CLOSE
iendShape
at siste kant i figuren skal settes sammen med første kant, altså at figures lukkes og fylles.



Regulære stjerner 1
Regulære stjerner med et odde antall spisser kan tegnes nesten helt likt som man tegner en regulær mangekant. De kan nesten sees på som en variant av mangekanter. Hvis du har tegnet en femkantet stjerne før, har du kanskje lagt merke til at dette likner på en femkant, men at du hopper over et hjørne når du tegner streken mellom to spisser.

-
vertex(300 + cos(radians(vinkel * hjorne * 2)) * 200, 300 + sin(radians(vinkel * hjorne * 2)) * 200);
Kunne du ganget med
2
et annet sted i koden og fått den samme effekten?
Regulære stjerner 2
Stjerner med et likt antall spisser, kan tegnes som to regulære mangekanter med halvparten så mange hjørner som stjernen har spisser.
Utfordring
Forbedre denne siden
Funnet en feil? Kunne noe vært bedre?
Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!