[wiskunde] Cosinusregel

Pagina: 1
Acties:
  • 2.166 views

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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.

[ Voor 9% gewijzigd door CMG op 07-11-2009 20:07 . Reden: typos ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • wheez50
  • Registratie: Oktober 2003
  • Laatst online: 03:55

Acties:
  • 0 Henk 'm!

  • Fox
  • Registratie: Mei 2007
  • Niet online

Fox

Bedoel je niet gewoon de stelling van Pythagoras?

A² + B² = C²

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
* 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))

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
pythagoras is alleen geldig bij hoeken waarvan één van de hoeken 90 graden is.

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

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

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 [google=cosinusregel] je ook nog wat resultaten zou kunnen opleveren? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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.

[ Voor 16% gewijzigd door CMG op 07-11-2009 19:49 . Reden: Reden toegevoegd. ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • writser
  • Registratie: Mei 2000
  • Laatst online: 16-09 10:48
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!


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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?
Afbeeldingslocatie: 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.

[ Voor 4% gewijzigd door CMG op 07-11-2009 21:22 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
(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)

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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.Object, ByVal e As System.EventArgs) Handles 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.

[ Voor 44% gewijzigd door CMG op 07-11-2009 21:49 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
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.

[ Voor 74% gewijzigd door LED-Maniak op 07-11-2009 21:58 ]

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
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

Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
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.

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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...

[ Voor 26% gewijzigd door CMG op 07-11-2009 22:22 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Voorbeeldje hieronder uitgewerkt.

[ Voor 96% gewijzigd door Mathieu_Hinder op 07-11-2009 22:33 ]


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
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

Acties:
  • 0 Henk 'm!

  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 03-05 10:30
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.

Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
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

[ Voor 24% gewijzigd door LED-Maniak op 07-11-2009 23:28 ]

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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 A, B, C, AB, BC, AC 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)

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
kijk eens naar mijn post. Daar staat het wat je dan moet doen ;)

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Hier je tekeningkje:

Afbeeldingslocatie: 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

[ Voor 89% gewijzigd door Mathieu_Hinder op 07-11-2009 23:00 ]


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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 :(

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
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.

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
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 ;)

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Aha, om te converteren naar radialen:

360° = 2 pi radialen

90 graden is dus (Pi/2)
45 graden is dus (Pi/4)

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 22:48:
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
Hoe bedoel je als waarde? Is dat V2?

Daarnaast, waarom deel je door 1? Dat is toch altijd 1?

Bedoel je dan (((sin(b)*AB)/sin(c)) / 2) * AB?
LED-Maniak schreef op zaterdag 07 november 2009 @ 22:59:
[...]

Je rekent zoals ik al eerder aangaf in radialen.
Dat moet je niet doen ;)
Ik ben heel blij met al jullie hulp, maar wat moet ik dan wel doen? :)

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
Je getal in radialen vermenigvuldigen met pi en dan delen door 180.

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
System.Diagnostics.Debug.WriteLine(Math.Sin(45*pi/180) / Math.Sin((90*pi/180) / 100))
System.Diagnostics.Debug.WriteLine(Math.Sin(45*pi/180) / (Math.Sin((90*pi/180)) / 100))

En nu?

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
LED-Maniak schreef op zaterdag 07 november 2009 @ 23:05:
System.Diagnostics.Debug.WriteLine(Math.Sin(45*pi/180) / Math.Sin((90*pi/180) / 100))
System.Diagnostics.Debug.WriteLine(Math.Sin(45*pi/180) / (Math.Sin((90*pi/180)) / 100))

En nu?
45,0176670623702
70,7106781186547

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
Komt erg dichtbij de 70 waar ik het over had he? :)

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
LED-Maniak schreef op zaterdag 07 november 2009 @ 23:07:
Komt erg dichtbij de 70 waar ik het over had he? :)
LED-Maniak schreef op zaterdag 07 november 2009 @ 23:07:
Komt erg dichtbij de 70 waar ik het over had he? :)
Yup, probeer nu alleen nog even te zien wat ik nu moet doen (relatie tussen formule en ontbrekende gegevens)

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Je zijde is toch wel degelijk 79,19 lang hoor. Edit: ik zie dat jij in je voorbeeld-driehoek ACF met schuine zijde 100 hebt gewerkt, vandaar het verschil, ik nam 112.

Maar om het even kort samen te vatten:

Je wilt je 2 (AC en BC) zijden uitdrukken afhankelijk van

-de variabele zijde 'AB'
-2 aanliggende hoeken van AB (hoek a en hoek b)
-overstaande hoek van AB (hoek c)

Je zijde AC is dus '[sin(b)*AB]/sin(c)'
Je zijde BC is dus '[sin(a)*AB]/sin(c)'

Je waarde van je hoeken moet je invoeren in radialen.!!

Enkel in mijn voorbeeld heb ik overigens die V2 gebruikt (de sinus van 45° is namelijk (V2)/2 en de sinus van 90° is 1, vandaar dus die twee getallen. In een andere hoek en situatie zullen deze uiteraard veranderen)

[ Voor 30% gewijzigd door Mathieu_Hinder op 07-11-2009 23:27 ]


Acties:
  • 0 Henk 'm!

  • LED-Maniak
  • Registratie: Oktober 2003
  • Laatst online: 10:32
woops, ik heb sinus en de lengte omgedraaid 8)7

^^ heeft gelijk.

[ Voor 17% gewijzigd door LED-Maniak op 07-11-2009 23:29 ]

Mitsubishi externe temperatuur sensor (Home Assistant compatible): V&A - ClimaControl - Ook voor Panasonic & LG.


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 23:14:
Je zijde is toch wel degelijk 79,19 lang hoor. Edit: ik zie dat jij in je voorbeeld-driehoek ACF met schuine zijde 100 hebt gewerkt, vandaar het verschil, ik nam 112.

Maar om het even kort samen te vatten:

Je wilt je 2 (AC en BC) zijden uitdrukken afhankelijk van

-de variabele zijde 'AB'
-2 aanliggende hoeken van AB (hoek a en hoek b)
-overstaande hoek van AB (hoek c)

Je zijde AC is dus '[sin(b)*AB]/sin(c)'
Je zijde BC is dus '[sin(a)*AB]/sin(c)'

Je waarde van je hoeken moet je invoeren in radialen.!!

Enkel in mijn voorbeeld heb ik overigens die V2 gebruikt (de sinus van 45° is namelijk (V2)/2 en de sinus van 90° is 1, vandaar dus die twee getallen. In een andere hoek en situatie zullen deze uiteraard veranderen)
eerst dacht ik: Yeah!, maar volgens mij is er nog iets niet goed.

Output = 30x:
A: 1, B: 1, C: 2, AB: 112, AC: 104, BC: 104
Code:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        For i As Integer = 30 To 60
            Test(i, 112)
        Next
'...
    Private Sub Test(ByVal Arc As Integer, ByVal AB As Integer)
        Dim A, B, C, AC, BC As Integer
        A = Arc
        C = 90
        B = 180 - (A + C)
        A = A * Math.PI / 180
        B = B * Math.PI / 180
        C = C * Math.PI / 180
        AC = (Math.Sin(B) * AB) / Math.Sin(C)
        BC = (Math.Sin(A) * AB) / Math.Sin(C)
        System.Diagnostics.Debug.WriteLine(String.Format("A: {0}, B: {1}, C: {2}, AB: {3}, AC: {4}, BC: {5}", A, B, C, AB, AC, BC))
    End Sub


Update:

Moest er doubles van maken, anders wordt alles afgerond :+

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
    Private Sub Test(ByVal Arc As Double, ByVal AB As Double)
        Dim A, B, C, rA, rB, rC, AC, BC As Double
        A = Arc
        C = 90
        B = 180 - (A + C)
        rA = A * Math.PI / 180
        rB = B * Math.PI / 180
        rC = C * Math.PI / 180
        AC = (Math.Sin(rB) * AB) / Math.Sin(rC)
        BC = (Math.Sin(rA) * AB) / Math.Sin(rC)
        System.Diagnostics.Debug.WriteLine(String.Format("A: {0}, B: {1}, C: {2}, AB: {3}, AC: {4}, BC: {5}", A, B, C, AB, AC, BC))
    End Sub

Uitkomst:

A: 30, B: 60, C: 90, AB: 112, AC: 96,9948452238571, BC: 56
A: 31, B: 59, C: 90, AB: 112, AC: 96,0027376786366, BC: 57,6842643899261
A: 32, B: 58, C: 90, AB: 112, AC: 94,9813867695197, BC: 59,350957594119
A: 33, B: 57, C: 90, AB: 112, AC: 93,9311036098875, BC: 60,999571921683
A: 34, B: 56, C: 90, AB: 112, AC: 92,8522081261647, BC: 62,6296051887237
A: 35, B: 55, C: 90, AB: 112, AC: 91,7450289603671, BC: 64,2405608713172
A: 36, B: 54, C: 90, AB: 112, AC: 90,6099033699941, BC: 65,831948256757
A: 37, B: 53, C: 90, AB: 112, AC: 89,4471771252968, BC: 67,4032825930294
A: 38, B: 52, C: 90, AB: 112, AC: 88,2572044039529, BC: 68,9540852364737
A: 39, B: 51, C: 90, AB: 112, AC: 87,0403476831807, BC: 70,4838837975818
A: 40, B: 50, C: 90, AB: 112, AC: 85,7969776293255, BC: 71,9922122848924
A: 41, B: 49, C: 90, AB: 112, AC: 84,5274729849505, BC: 73,4786112469368
A: 42, B: 48, C: 90, AB: 112, AC: 83,2322204534681, BC: 74,9426279121921
A: 43, B: 47, C: 90, AB: 112, AC: 81,9116145813471, BC: 76,3838163269998
A: 44, B: 46, C: 90, AB: 112, AC: 80,5660576379289, BC: 77,8017374914077
A: 45, B: 45, C: 90, AB: 112, AC: 79,1959594928933, BC: 79,1959594928933
A: 46, B: 44, C: 90, AB: 112, AC: 77,8017374914077, BC: 80,5660576379289
A: 47, B: 43, C: 90, AB: 112, AC: 76,3838163269998, BC: 81,9116145813471
A: 48, B: 42, C: 90, AB: 112, AC: 74,9426279121921, BC: 83,2322204534681
A: 49, B: 41, C: 90, AB: 112, AC: 73,4786112469368, BC: 84,5274729849505
A: 50, B: 40, C: 90, AB: 112, AC: 71,9922122848924, BC: 85,7969776293255
A: 51, B: 39, C: 90, AB: 112, AC: 70,4838837975818, BC: 87,0403476831807
A: 52, B: 38, C: 90, AB: 112, AC: 68,9540852364737, BC: 88,2572044039529
A: 53, B: 37, C: 90, AB: 112, AC: 67,4032825930294, BC: 89,4471771252968
A: 54, B: 36, C: 90, AB: 112, AC: 65,831948256757, BC: 90,6099033699941
A: 55, B: 35, C: 90, AB: 112, AC: 64,2405608713172, BC: 91,7450289603671
A: 56, B: 34, C: 90, AB: 112, AC: 62,6296051887237, BC: 92,8522081261647
A: 57, B: 33, C: 90, AB: 112, AC: 60,999571921683, BC: 93,9311036098875
A: 58, B: 32, C: 90, AB: 112, AC: 59,350957594119, BC: 94,9813867695197
A: 59, B: 31, C: 90, AB: 112, AC: 57,6842643899261, BC: 96,0027376786366
A: 60, B: 30, C: 90, AB: 112, AC: 56, BC: 96,9948452238571

Nu lijkt het er meer op en kan ik gaan klooien. Ik ga binnekort nog maar eens een meetkunde boek kopen, want 't wil d'r allemaal niet helemaal in, maar iig heel erg bedankt alvast, nu ik iets werkends heb kan ik iig daar mee stoeien.

Klopt het dat het dus is:

Zijde = (Sin(Overstaande hoek) * Bekende zijde) / Sin(Overstaande hoek van bekende zijde)?

[ Voor 49% gewijzigd door CMG op 07-11-2009 23:37 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Programmeren weet ik helaas helemaal niets van (nog iets te vroeg daarvoor :p ), je formule op zich lijkt dus wel te kloppen.

A: 45, B: 45, C: 90, AB: 112, AC: 79,1959594928933, BC: 79,1959594928933

Yes :D Veel succes in het verdiepen in de wiskunde!

[ Voor 36% gewijzigd door Mathieu_Hinder op 07-11-2009 23:37 ]


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 23:36:
Programmeren weet ik helaas helemaal niets van (nog iets te vroeg daarvoor :p ), je formule op zich lijkt wel te kloppen...
Klopt dit: Zijde = (Sin(Overstaande hoek) * Bekende zijde) / Sin(Overstaande hoek van bekende zijde)?

Dus:

AB = (Sin( C ) * AC) / Sin( B )
of
AB = (Sin( C ) * BC) / Sin( A )

AC = (Sin( B ) * AB) / Sin( C )
of
AC = (Sin( B ) * BC) / Sin( A )


BC = (Sin( A ) * AB) / Sin( C )
of
BC = (Sin( A ) * AC) / Sin( B )

[ Voor 24% gewijzigd door CMG op 07-11-2009 23:40 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • Mathieu_Hinder
  • Registratie: November 2008
  • Laatst online: 03-03 12:59
Het principe is eenvoudiger te onthouden als je het zo schrijft:

Sin(a) . Sin(b) .. Sin(c)
-------- = --------- = ---------
A .......... B ......... C

In woorden: de verhouding tussen de sinus van een hoek en de lengte van de overstaande zijde is altijd gelijk

Die puntjes dienen enkel om dat een reeks spaties blijkbaar weggelaten wordt, een kolom maken lukt niet echt...
Hierbij zijn de hoeken en zijden met dezelfde letter overstaande hoeken/zijden. Naargelang de gegevens die je hebt, kan je die invullen, de formule wat omvormen en zo 1 onbekende berekenen.

[ Voor 53% gewijzigd door Mathieu_Hinder op 07-11-2009 23:47 ]


Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
Mathieu_Hinder schreef op zaterdag 07 november 2009 @ 23:41:
Het is eenvoudiger te onthouden als je het zo schrijft:

Sin(a) . Sin(b) .. Sin(c)
-------- = --------- = ---------
A .......... B ......... C

Die puntjes dienen enkel om dat een reeks spaties blijkbaar weggelaten wordt...
Hierbij zijn de hoeken en zijden met dezelfde letter overstaand. Naargelang de gegevens die je hebt, kan je invullen en 1 onbekende berekenen.
Dat is persoonlijk, overal staat het op die manier, alleen dan begrijp ik het dus niet, dat was de moeilijkheid ook hier. Mijn voorbeeld kan ik door een compiler heen gooien en die begrijpt wat ik bedoel ;) mijn hersenen werken ongeveer op de zelfde manier lijkt 't ;) ben iig heel blij dat ik dit deel van meetkunde nu begrijp :)

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 23:32
Is het niet handiger als je een functie maakt voor naar Radialen te rekenen en terug? Dan krijg je:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
Public Function ToRadian(Degree as Double) as Double

return Degree * math.pi / 2

End Function

Public Function ToDegree(Radian as Double) as Double

Return Radian / math.pi * 2
End Function


offtopic:
Heb hem niet getest of die goed werkt, maar daar kom je snel achter

Acties:
  • 0 Henk 'm!

  • CMG
  • Registratie: Februari 2002
  • Laatst online: 10-12-2024
P-Storm schreef op zaterdag 07 november 2009 @ 23:51:
Is het niet handiger als je een functie maakt voor naar Radialen te rekenen en terug? Dan krijg je:

Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
Public Function ToRadian(Degree as Double) as Double

return Degree * math.pi / 2

End Function

Public Function ToDegree(Radian as Double) as Double

Return Radian / math.pi * 2
End Function


offtopic:
Heb hem niet getest of die goed werkt, maar daar kom je snel achter
Hehe, true. Dit was even quick en dirty testen, niet hoe de code er echt uit komt te zien.

Ik zal straks nog even aangepaste code laten zien om het resultaat in actie te laten zien (heb mijn oplossing al voor 0 -> 56 graden (door Y offset), moet nog even bedenken wat ik moet doen voor de X offset)

UPDATE

Aangepaste source: http://www.nkcss.nl/GDIPlusRotate-UPDATE.zip

Ik heb een paar dingen geprobeerd, maar kom er niet helemaal uit.

Wat ik moet weten: Vanaf linker boven hoek gemeten het aantal pixels omlaag tot het punt waarop je een horizontale lijn kunt trekken van 100 pixels binnen het vierkant van 112 pixels en hoeveel pixels naar links die lijn van 100 pixels breed begint ten opzichte van het startpunt. Volgens mij klinkt het erg vaag, ik zal kijken of ik morgen nog eens wat dingen kan gaan tekenen :) voor nu: welterusten.

[ Voor 30% gewijzigd door CMG op 08-11-2009 01:44 ]

NKCSS - Projects - YouTube


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Ik ga toch dit topic (alsnog) sluiten. Dit is nu zo goed als uitgemondt in een bij-het-handje-hou-topic. Iets wat we hier liever niet zien. Het is erg lief en aardig dat mensen je hier nu zo helpen maar jij bent diegene die dingen zou moeten nakijken, debuggen etc en dat laat je hier nu door anderen doen. Ik krijg ook nog het gevoel dat het hier om een huiswerkachtig iets gaat en dan zou je dit soort dingen eerst met je docent moeten overleggen.

[ Voor 19% gewijzigd door Creepy op 08-11-2009 09:51 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.