Hoofdcategorieën
Topicacties

[wiskunde] Cosinusregel

Pagina: 1 2 last

Nieuw Topic
Berichten: 380
Reg. datum: 15 februari 2002

Ik schaam me dat ik het moet vragen, maar iemand die in begrijpelijke taal kan uitleggen hoe je ook alweer de 3e zijde van een driehoek berekend?

Ik heb een picturebox als canvas die ik volledig wil bedekken met een zelf getekend oppervlak. Dit oppervlak kan met een variabel aantal graden gedraaid worden, dus om te weten hoe groot mijn zelf getekend oppervlak moet zijn voordat er gedraait wordt moet ik de het diagonaal van mijn canvas pakken als nieuwe width en hight voor mijn te tekenen oppervlak.

Nu weet ik allen niet meer hoe het diagonaal berekenen ook alweer ging (veel gespijbelt op school vroegah helaas). Ik weet nog dat het volgens mij iets met Cosinus en Pi was, maar hoe: geen idee. Uit deze Wikipedia pagina kom ik geen wijs uit helaas (Wikipedia: Cosinusregel).

Dus, iemand die het aan durft om het uit te leggen?

Groet,

Nick.

UPDATE

Eerste deel is opgelost, nu deel Twee nog.

CMG wijzigde dit bericht 07-11-2009 20:07 (9%)
Reden: typos

Berichten: 913
Reg. datum: 04 mei 2007

Bedoel je niet gewoon de stelling van Pythagoras?

A² + B² = C²
 
Berichten: 380
Reg. datum: 15 februari 2002

* CMG = niet helemaal wakker iid, tx.

100x50 = C -> 10000 x 2500 = 12500. C = 112

Dim W, H, pW, pH, pC, C As Integer
W = pbxPreview.Width
H = pbxPreview.Height
pW = W ^ 2
pH = H ^ 2
pC = pW + pH
C = Math.Sqrt(pC)
System.Diagnostics.Debug.WriteLine(String.Format("{0}x{1} = C -> {2} x {3} = {4}. C = {5}", W, H, pW, pH, pC, C))
moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

pythagoras is alleen geldig bij hoeken waarvan één van de hoeken 90 graden is.

a^2 = b^2+c^2 - 2bc(cos alfa)
 

Acties:


Door: NMe
Admin Devschuur®
Koos Alberts-pauper
Berichten: 35.324
Reg. datum: 25 februari 2004

quote:
LED-Maniak schreef op zaterdag 07 november 2009 @ 18:38:
pythagoras is alleen geldig bij hoeken waarvan één van de hoeken 90 graden is.

a^2 = b^2+c^2 - 2bc(cos alfa)
Stiekem is natuurlijk wel elke driehoek terug te brengen tot twee rechthoekige driehoeken door een lijn haaks op één zijde naar het overliggende punt te trekken. Daarna is er dus ook met Pythagoras wel mee te rekenen. :)

CMG: er zijn natuurlijk meer bronnen dan alleen Wikipedia. Misschien dat zoeken bij google naar 'cosinusregel' je ook nog wat resultaten zou kunnen opleveren? ;)

Over MySQL:
NMe: Als je weet waar de gaatjes zitten, dan kun je er prima mee werken.
.oisyn: Tja, dat geldt ook voor vrouwen, maar dat wil nog niet zeggen dat ze niet af en toe het bloed onder je nagels vandaan halen.

Berichten: 380
Reg. datum: 15 februari 2002

Ander vraagje dat in gaat op de reden waarom ik dit vroeg:

Ik heb nu een Vierkant (A) gebaseerd op diagonaal van een andere vierkant (B ). B kan, ongeacht in welke hoek gedraaid, nu in A zonder er deels buiten te vallen.

Hoe bereken ik de positie van B binnen A aan de hand van de rotatie (graden)? Iemand enig idee?

Ik heb een appje in elkaar gedraaid waarmee je visueel kan zien wat ik bedoel (gearceerd fototje in een rechthoek waarbij je dynamisch even de rotate en startpositie kunt aanpassen).

http://www.nkcss.nl/GDIPlusRotate.zip

Alvast bedankt.

Edit:

Ik snap dat ik gewoon 3x de size die ik nu berekend heb kan pakken, pos x -= width en pos y -= height, maar dat is een hack/quick fix en zou graag gewoon willen leren hoe ik dit soort zaken kan bereken. Tx alvast iig.

CMG wijzigde dit bericht 07-11-2009 19:49 (16%)
Reden: Reden toegevoegd.

Berichten: 768
Reg. datum: 28 mei 2000

Ik heb je applicatie gedownload, maar ik heb werkelijk geen flauw benul van wat je probleem precies is. Kun je proberen het iets duidelijker uit te leggen?

Onvoorstelbaar!

Berichten: 380
Reg. datum: 15 februari 2002

quote:
writser schreef op zaterdag 07 november 2009 @ 20:23:
Ik heb je applicatie gedownload, maar ik heb werkelijk geen flauw benul van wat je probleem precies is. Kun je proberen het iets duidelijker uit te leggen?
http://www.nkcss.nl/meetkunde.png

Ik wil dus de positie van A,B,C,D berekenen ten opzichte van het hoogste punt in het geroteerde object (dat is het 0 punt).

(en ja, sorry voor dat verschrikkelijke handschrift :P)

Wat er staat:
Rechthoek 100 bij 50 pixels. Diagonaal = 112 pixels. Dit zou dus, ongeacht de rotatie van de rechthoek de grootste zijde zijn.

We tekenen een vlak van 112x112 zodat de originele rechthoek hier altijd binnenpast, ongeacht de rotatie van deze grotere rechthoek

Nu is het dus de bedoeling om, afhankelijk van de rotatie van de grotere rechthoek de positie binnen de rechthoek te berekenen waarbij het originele figuur er precies binnen past.

CMG wijzigde dit bericht 07-11-2009 21:22 (4%)

moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

(AB/2) / tangens (45) en je hebt de lengte van de buitenhoek naar de binnenkant van afbeelding 1.

Met de sinus(overstaande / schuine) kan je de lengte van de schuine lengte van de hoek tot A berekenen.

(AB/2) / sinus(45)
 
Berichten: 380
Reg. datum: 15 februari 2002

quote:
LED-Maniak schreef op zaterdag 07 november 2009 @ 21:25:
(AB/2) / tangens (45) en je hebt de lengte van de buitenhoek naar de binnenkant van afbeelding 1.

Met de sinus(overstaande / schuine) kan je de lengte van de schuine lengte van de hoek tot A berekenen.

(AB/2) / sinus(45)
Volgens mij begrijp ik een ding dan niet helemaal Goed.
In mijn app pas ik dan dit aan:
Visual Basic .NET:
1
2
3
4
5
    Private Sub tba_Scroll(ByVal sender As System.ObjectByVal e As System.EventArgsHandles TrackBar1.ValueChanged
        txtArc.Text = TrackBar1.Value
        ' pbxPreview.Height = 50 (Zijde AB), TrackBar1.Value = tussen de 0 en 360 (Rotatie).
        txtOffsetY.Text = (pbxPreview.Height / 2) / Math.Tan(Integer.Parse(txtArc.Text))
    End Sub

maar dan krijg ik hele rare getallen (en een zooi exceptions...).

Die aanpassing was om te zien wat er gebeurde, in het appje zou ik het resultaat nog een keer * -1 moeten doen voor het gewenste effect, maar zo ver kwam ik nog niet.

Als je dus weet dat de grote ruit hier 112x112px is, ge-roteerd met 45 graden en daarbinnen een rechthoek van 100x50px en je neemt de bovenste hoek van de ruit (hoogste punt in de tekening) als 0,0 punt, wat zou dan volgens jou de berekening zijn? Er gaat ergens wat mis bij mij op het moment dat ik een formule naar de werkelijkheid moet vertalen omdat ik niet begrijp wat de componenten in de formule voorstellen.

Edit 2:

Wat ik weet is Hoek 1 (Rotatie, in ons geval: 45 graden), hoek 2 (rechthoekige driehoek om hoogte te berekenen = 90 graden), Hoek 3 = 180 - (hoek 1 + 2) = 45 graden.

We hebben dus alle 3 de hoeken in alle situaties.

We weten ook de lengte van de langste zijde (overstaand aan de 90 graden hoek), die is 112 in ons geval (Math.Sqrt(Math.Pow(100, 2) + Math.Pow(50, 2))). Hoe reken ik de overige 2 dan uit? Dat is eigenlijk mijn vraag, de rest kan ik aan de hand daarvan weer berekenen volgens mij.

Groet,

Nick.

CMG wijzigde dit bericht 07-11-2009 21:49 (44%)

moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

tangens in radialen ipv degree misschien?

[edit]

Als je de bovenste hoek neemt, dan trek je een vertikale streep naar beneden. Zo ontstaat er een driehoek met een 90 graden hoek er in en kan je tangens, sinus, cosinus, pythagoras gebruiken om zijdes en/of hoeken te berekenen.

LED-Maniak wijzigde dit bericht 07-11-2009 21:58 (74%)

 
Berichten: 62
Reg. datum: 02 november 2008

Je hebt dus een driehoek met 3 hoeken die bekend zijn, en 1 zijde die bekend is? De sinusregel dus: de verhouding tussen de sinus van een hoek op de lengte van de overstaande zijde is altijd gelijk.

Sin(a)/A = Sin(b)/B

Vermits je hoek a en b al weet, en zijde A heb je ook, is enkel B onbekend. Daarna gewoon herhalen met zijde C
 
moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

Kan ook idd.

Misschien maakt dit het ook wat duidelijker:
Wikipedia: Soscastoa

De hoogste hoek is bijv hoek gamma(y). Vertikale lijn naar beneden en je hebt de hoek om mee te rekenen.

De overstaande lengte weet je, dit is 100/2 = 50px.
Nu kan je dus door formule wat om te bouwen de schuine zijde berekenen.
 
Berichten: 380
Reg. datum: 15 februari 2002

quote:
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 21:58:
Je hebt dus een driehoek met 3 hoeken die bekend zijn, en 1 zijde die bekend is? De sinusregel dus: de verhouding tussen de sinus van een hoek op de lengte van de overstaande zijde is altijd gelijk.

Sin(a)/A = Sin(b)/B

Vermits je hoek a en b al weet, en zijde A heb je ook, is enkel B onbekend. Daarna gewoon herhalen met zijde C
* CMG snap het nog steeds niet, sorry.

Voor zover ik weet zijn ABC de hoeken en abc de zijdes, toch?

Ik geeft aan: ik weet 3 hoeken en 1 zijde, vervolgens kom je met een formule waarbij 2 zijdes gebruikt worden. Het stuk dat je in tekst probeert uit te leggen gaat d'r bij gewoon niet in, ik kan het gewoon niet volgen.

Zou je een voorbeeld kunnen geven van een vergelijkbaar probleem met uitwerking? Dan kan ik aan de hand daarvan begrijpen wat je doet.

Edit

Langste zijde heet de schuine zijde.
Hoeken grenzend aan de schuine zijde hebben voor de overige 2 zijdes de naam aanliggend en overstaand (logisch), maar hoe heten de zijdes dan bekeken vanuit de hoek overstaand aan de schuine zijde?

Edit2:

De conclusie is dus dat ik Tangens/Sinus/Cosinus niet begrijp.

Wikipedia: Soscastoa is heel duidelijk, alleen begrijp ik het niet, ik zou met een rekenmachine niet weten wat ik in moet tikken om het op te lossen.

Dus, met een Driehoek ABC waar A = 45 graden, B = 45 graden, C = 90 graden en AB = 112px, hoe bereken ik AC en BC?

offtopic:
bedankt trouwens voor jullie geduld...

CMG wijzigde dit bericht 07-11-2009 22:22 (26%)

Berichten: 62
Reg. datum: 02 november 2008

Voorbeeldje hieronder uitgewerkt.

Mathieu_Hinder wijzigde dit bericht 07-11-2009 22:33 (96%)

 
Berichten: 62
Reg. datum: 02 november 2008

quote:
CMG schreef op zaterdag 07 november 2009 @ 22:07:
[...]

* CMG snap het nog steeds niet, sorry.

Voor zover ik weet zijn ABC de hoeken en abc de zijdes, toch?

Ik geeft aan: ik weet 3 hoeken en 1 zijde, vervolgens kom je met een formule waarbij 2 zijdes gebruikt worden. Het stuk dat je in tekst probeert uit te leggen gaat d'r bij gewoon niet in, ik kan het gewoon niet volgen.

Zou je een voorbeeld kunnen geven van een vergelijkbaar probleem met uitwerking? Dan kan ik aan de hand daarvan begrijpen wat je doet.

Edit

Langste zijde heet de schuine zijde.
Hoeken grenzend aan de schuine zijde hebben voor de overige 2 zijdes de naam aanliggend en overstaand (logisch), maar hoe heten de zijdes dan bekeken vanuit de hoek overstaand aan de schuine zijde?

Edit2:

De conclusie is dus dat ik Tangens/Sinus/Cosinus niet begrijp.

Wikipedia: Soscastoa is heel duidelijk, alleen begrijp ik het niet, ik zou met een rekenmachine niet weten wat ik in moet tikken om het op te lossen.

Dus, met een Driehoek ABC waar A = 45 graden, B = 45 graden, C = 90 graden en AB = 112px, hoe bereken ik AC en BC?

offtopic:
bedankt trouwens voor jullie geduld...
In dit geval heb je een rechthoekige, gelijkbenige driehoek. Dat betekent dat je 1 schuine zijde hebt van 112px en de rechthoekszijden zijn beiden even lang (vermits de hoeken A en B gelijk zijn). Je kunt in een rechthoekige driehoek dus de stelling van pythagoras gebruiken:

AB² = AC² + BC²

- AC en BC zijn gelijk, zie tekstje hierboven, dus wordt het:

112²= 2*AC²

- Hiermee heb je dus de zijde gevonden :p

V(12544/2) = de zijde AC en BC
 
quote:
NMe schreef op zaterdag 07 november 2009 @ 19:17:
[...]

Stiekem is natuurlijk wel elke driehoek terug te brengen tot twee rechthoekige driehoeken door een lijn haaks op één zijde naar het overliggende punt te trekken. Daarna is er dus ook met Pythagoras wel mee te rekenen. :)
Maar op die manier kan je alsnog niet alles uitrekenen, omdat je dan alsnog niet alle gegevens van die 2 driehoeken hebt.

Compact Flash kaartjes als stille IDE harddisk gebruiken. Gebruik kortingscoupon "ship4free" voor gratis verzenden. Mijn nieuwe site: Knoopcel batterij .nl

moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

oke, sinusregel:

Je hebt driehoek ACF.

AC = 100
Hoek A = 45
Hoek C = 45
Hoek F = 90

We weten de formule:
AC / Sinus F = FC / Sinus A
Dus:
100 / Sinus 90 = FC / Sinus 45

LED-Maniak wijzigde dit bericht 07-11-2009 23:28 (24%)

 
Berichten: 380
Reg. datum: 15 februari 2002

quote:
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 22:25:
Wel je hebt een driehoek met de hoeken A,B,C en de zijden a,b,c Nu is er een stelling die zegt dat er een verhouding bestaat tussen de sinus van een hoek gedeeld door de lengte van de overstaande zijde, en deze is bij de drie hoeken gelijk:

Sin(A)/a = Sin(B)/b (=Sin(C)/c)

Vermits je zowel hoek A als B hebt, en de lengte van a (de ene zijde die je hebt), is zijde b de enige onbekende in je formule. Als je het tweede deel vervang door het derde deel van de vergelijking, heb je als enige onbekende zijde c. Zo krijg je eenvoudig de lengte van je 2 zijdes
Daar gaat het bij mij dus mis.

Ik snap dat ik Math.Sin(90) / 112 moet doen, uitkomst: 0,00798211306786212, maar wat ik ik daar mee om de overige te berekenen?
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
        Dim ABCABBCAC As Integer
        A = 45
        B = 45
        C = 90
        AB = 112
        Dim Magic As Double = Math.Sin(C) / AB
        ' Dit klopt niet, maar begrijp niet wat dit dan wel zou moeten zijn??
        AC = Math.Sin(B) * Magic
        BC = Math.Sin(A) * Magic
        System.Diagnostics.Debug.WriteLine(AC)
        System.Diagnostics.Debug.WriteLine(BC)

moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

kijk eens naar mijn post. Daar staat het wat je dan moet doen ;)
 
Berichten: 62
Reg. datum: 02 november 2008

Hier je tekeningkje:

http://img141.imageshack.us/img141/554/pythagoras.jpg


Volgens de sinusregel wordt het dit, dit is toepasbaar bij iedere driehoek, (Pythagoras kan je enkel gebruiken bij rechthoekige driehoeken):

AC/sin(b)=AB/sin(c)

AC= (sin(b)*AB)/sin(c) -> Dit moet je dus gebruiken als waarde!

- Uitgewerkt op die ene driehoek wordt dit:

AC = (((V2)/2)*112)/1

AC = 79,19

Mathieu_Hinder wijzigde dit bericht 07-11-2009 23:00 (89%)

 
Berichten: 380
Reg. datum: 15 februari 2002

quote:
LED-Maniak schreef op zaterdag 07 november 2009 @ 22:32:
oke, sinusregel:

Je hebt driehoek ACF.

AC = 100
Hoek A = 45
Hoek C = 45
Hoek F = 90

We weten de formule:
Sinus F / AC = Sinus A / FC

Dus:
Sinus 90 / 100 = Sinus 45 / FC

Simpel omrekenen:

FC = Sinus 45 / (Sinus 90 / 100) = 70px
Volgens mij doe ik wat fout:
Als ik probeer:

System.Diagnostics.Debug.WriteLine(Math.Sin(45) / Math.Sin(90 / 100)) --> 1,08626872647433
System.Diagnostics.Debug.WriteLine(Math.Sin(45) / (Math.Sin(90) / 100)) --> 95,1797203702212

* CMG = completely lost :(
Berichten: 380
Reg. datum: 15 februari 2002

quote:
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 22:48:
Hier je tekeningkje:

[afbeelding]

Als waarde voor je a neem je dus gewoon mijn voorlaatste regel: V(112²/2)
* CMG had al pythagoras gebruikt om 112 te berekenen (dat was het begin van de post), die volgde ik nog.

Het punt is dat ik de 2 overige lengtes moet berekenen, maar het zal niet altijd een rechthoekige driehoek zijn. Het moet ook werken met 44,46,90.
moeehh
Berichten: 3.291
Reg. datum: 04 oktober 2003

quote:
CMG schreef op zaterdag 07 november 2009 @ 22:51:
[...]


Volgens mij doe ik wat fout:
Als ik probeer:

System.Diagnostics.Debug.WriteLine(Math.Sin(45) / Math.Sin(90 / 100)) --> 1,08626872647433
System.Diagnostics.Debug.WriteLine(Math.Sin(45) / (Math.Sin(90) / 100)) --> 95,1797203702212

* CMG = completely lost :(
Je rekent zoals ik al eerder aangaf in radialen.
Dat moet je niet doen ;)
 

Pagina: 1 2 last


Dit topic is gesloten.


VNU Media logo Hosted by True

© 1998 - 2010 Tweakers.net - Alle rechten voorbehouden - Uw Privacy - Algemene Voorwaarden

Uitgever van:

Website van het jaar 2009