Hoeken berekenen in een driehoek in een programma
Ik weet de lengtes van de aanliggende en tegenoverliggende zijdes in een driehoek, bijv. 100 en 100 -> de tan = 100 /100 = 1 = 45 graden. Maar dan: Ik wil vanuit een programma zonder loop deze 45 graden berekenen.Dit lukt mij dus niet. De enige methode lijkt om voor elke mogelijke hoek een tagens vergelijking te maken. (kan alleen in een stom loopje). Als deze dan overeenkomt dan heb je de hoek.(dit moet makkelijker kunnen)Mijn vraag is dus hoe bereken ik 't snelst een hoek. (alle lengtes van alle zijden van een driehoek zijn bekend) E.e.a. heeft betrekking op een computerprog. welke de hoek van een grafiek moet berekeken. (statistieken) Thanks,
Peter
Leerling bovenbouw havo-vwo - zaterdag 6 juli 2002
Antwoord
Gegeven de drie zijden (a,b,c) van een driehoek kan je m.b.v. de cosinusregel eenvoudig elke hoek uitrekenen. Laten we zeggen dat we A willen weten, dan nemen we: a2=b2+c2-2·b·c·cosa Om het mogelijk te maken 'in een keer' de hoek uit te rekenen werken we deze formule om tot:
Dat is al mooi, maar een laatste stap om a uit te rekenen is dan de Arccos te nemen. Zodat je uiteindelijk uitkomt op:
...of in een meer 'tekstachtige' schrijfwijze: hoek=Arccos((b^2+c^2-a^2)/(2*b*c)) Nu is echter de 'grap' dat in de meeste programmeertalen helemaal geen ArcCos is opgenomen, dus die zul je dus waarschijnlijk zelf moeten definiëren. Dat kan gelukkig redelijk eenvoudig met de ArcTan. Dat doe je dan met behulp van:
De ArcTan is meestal wel geimplementeerd, meestal als ATan of Atn of iets dergelijks. Overgens moet je er wel rekening mee houden dat je hier met radialen rekent en niet met graden. Nou ja, hopelijk kan je hier verder mee...
zaterdag 6 juli 2002
©2001-2024 WisFaq
|