28. september 2002 - 17:50Der er
13 kommentarer og 3 løsninger
sinus, cosinus og tangens (evt. sinh, cosh og tanh)
Hejsa Eksperter...
Jeg er helt overbevist om at det findes nogle kommandoer der definere sinus, cosinus og tangens. Men jeg kan ikke finde dem, og hvis jeg fik/fandt dem, ville jeg nok heller ikke lige kunnet bruge dem, så derfor hvordan laver jeg sin, cos og tan i vb?? Og evt. sinh, cosh, tanh???
det er helt rigtigt at der er masser af materiale, men det er ikke så godt når den ikke regner rigtigt!! jeg tog et kig her: http://www.pgacon.com/VB6BB.HTM
jeg skal desuden også bruge disse kommandoer: tan^-1, sin^-1 og cos^-1
det med at den regner forkert er fordi den regner i radianer og ikke grader... så jeg vil gerne have mere info om dette forplem også (jeg giver flere point for de ekstra svar)
Så kan du jo bare bruge lidt matematik til at få det til at passe, så det bliver i grader. Det vil jo bare ikke altid give mening, f.eks. hvis du regner på bølgefunktioner.
1° = pi/180 rad = 0,01745 1 rad = 180°/pi = 57,2958°
det er helt forstået det du siger! så hvis jeg f.eks. har 30°, så hedder formlen, der regner om til radian 30/pi... Men det er jo ikke det jeg er ude efter.., jeg vil ikke regne RAD
ja okay.. jeg kan godt se hvor du vil hen, så skal jeg bare lave de største omregninger, det gør selvfølgelig heller ikke noget! Men så mangler jeg kun et svar og det er på hvad man skriver istedet for tan^-1, sin^-1 og cos^-1... disse kommandoer virker nemlig ikke!
Funktionerne i VB er simpelt nok; sin(Tal), cos(Tal) og tan(Tal). Funktionerne til invers sin, -cos og -tan er lidt mere advanceret, men hvis du har brug for dem, kan jeg godt indsætte en lille kodestump jeg har lavet til at beregne disse... -Sion
'-------------- Global Const PI = 3.14159265358979
Public Function ArcSin(Tal As Single, Optional Radianer As Boolean = True) As Single Dim Resultat As Single, Grader As Single
If Tal = 1 Then Resultat = PI / 2 Else Resultat = Atn(Tal / Sqr(-Tal * Tal + 1)) End If If Radianer = True Then ArcSin = Resultat Else Grader = Replace(Resultat, ".", ",") ArcSin = RadTilGrad(Resultat) End If End Function
Public Function ArcCos(Tal As Single, Optional Radianer As Boolean = True) As Single Dim Resultat As Single, Grader As Single
If Tal = 1 Then Resultat = PI / 2 Else Resultat = Atn(-Tal / Sqr(-Tal * Tal + 1)) + 2 * Atn(1) End If If Radianer = True Then ArcCos = Resultat Else Grader = Replace(Resultat, ",", ".") ArcCos = RadTilGrad(Resultat) End If End Function
Public Function ArcTan(Tal As Single, Optional Radianer As Boolean = True) As Single Dim Resultat As Single, Grader As Single
Resultat = Atn(Tal) If Radianer = True Then ArcTan = Resultat Else ArcTan = Resultat * (180 / PI) End If End Function
Public Function RadTilGrad(Radianer As Single) As Single RadTilGrad = Radianer * PI / 180 End Function
Public Function GradTilRad(Grader As Single) As Single GradTilRad = Grader * 180 / PI End Function '---------------
Således skal det gøres :D Hvis du ofte laver mat-programmer, kan du jo gemme modulet under "...VB98\Templates\Modules", for så kan du vælge modulet under "Add Module". -Sion
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.