Avatar billede andersmd Nybegynder
11. januar 2008 - 18:55 Der er 15 kommentarer

Sinus og Cosinus funktioner i grader - ikke radianer

Jeg ved ikke hvordan man bruger sinus og cosinus så resultatet kommer ud i grader. Mit resultat kommer tilbage i grader.
180 grader er jo det samme som pi(3,14...) radianer

180/3,14=57,2957795130823

og man kan ikke bare gange resultatet med 57,2957795130823...

Hvad gør jeg???
Avatar billede amews_aj Nybegynder
11. januar 2008 - 19:03 #1
Grader til radianer:

(2*pi)/360 * x

Radianer til grader:

360/(2*pi) * x
Avatar billede nielle Nybegynder
11. januar 2008 - 19:04 #2
Hverken cosinus eller sinus returnere en vinkel - så det er ikke resultatet som skal ganges.

Argumenterne ar ganske rigtigt en vinkelt og forventes at være i radianer.
Avatar billede nielle Nybegynder
11. januar 2008 - 19:05 #3
sin(vinkelIGrader / 57.2957795130823)
Avatar billede andersmd Nybegynder
11. januar 2008 - 19:20 #4
Ok... men hvad skal jeg så gøre ved det tal
Det her er min kilde kode:

<html>
<head>
  <title>Trekant</title>
  </head>
<body>
  <form name="fTrekantBeregn">
  <table>
    <tr>
      <td rowspan="8"></td>
      <td>Side a:</td>
      <td><input name="inSideA"></td>
    </tr>
    <tr>
      <td>Side b:</td>
      <td><input name="inSideB"></td>
    </tr>
    <tr>
      <td>Side c:</td>
      <td><input name="inSideC"></td>
    </tr>
    <tr>
      <td>Vinkel A:</td>
      <td><input name="inVinkelA"></td>
    </tr>
    <tr>
      <td>Vinkel B:</td>
      <td><input name="inVinkelB"></td>
    </tr>
    <tr>
      <td>Vinkel C:</td>
      <td><input name="inVinkelC"></td>
    </tr>
    <tr>
      <td>Areal:</td>
      <td><input name="inAreal"></td>
    </tr>
    <tr>
      <td>Omkreds:</td>
      <td><input name="inOmkreds"></td>
    </tr>
  </table>
  <button name="KnapTrekantBeregn">Beregn</button>
  </form>
  <script language="javascript">
  <!--Variabler-->
    var vSideA=0
    var vSideB=0
    var vSideC=0
    var vVinkelA=0
    var vVinkelB=0
    var vVinkelC=0
    var vAreal=0
    var vOmkreds=0
  <!--Events-->
    document.fTrekantBeregn.KnapTrekantBeregn.onclick=funBeregn_abB;
  <!--Funktioner-->
    function funBeregn_abB()
    {
    vSideA=document.fTrekantBeregn.inSideA.value
    vSideB=document.fTrekantBeregn.inSideB.value
    vVinkelB=document.fTrekantBeregn.inVinkelB.value
    vSideC=
    vVinkelA=Math.asin(Math.sin(vVinkelB)/vSideB*vSideA));
    vVinkelC=
    vAreal=
    vOmkreds=
    funScreenWrite()
    }
    function funScreenWrite()
    {
    document.fTrekantBeregn.inSideA.value=vSideA
    document.fTrekantBeregn.inSideB.value=vSideB
    document.fTrekantBeregn.inSideC.value=vSideC
    document.fTrekantBeregn.inVinkelA.value=vVinkelA
    document.fTrekantBeregn.inVinkelB.value=vVinkelB
    document.fTrekantBeregn.inVinkelC.value=vVinkelC
    document.fTrekantBeregn.inAreal.value=vAreal
    document.fTrekantBeregn.inOmkreds.value=vOmkreds
    }
  </script>
</body>
</html>
Avatar billede nielle Nybegynder
11. januar 2008 - 19:42 #5
Hvis du kender Side-A, Side-B og Vinkel-B så er der potentielt 0,1 eller 2 mulige løsninger for Side-C. Det giver nogle store problemer med at gøre din kode værdig.
Avatar billede nielle Nybegynder
11. januar 2008 - 19:43 #6
værdig -> færdig
Avatar billede andersmd Nybegynder
11. januar 2008 - 19:45 #7
Hvad mener du???
Avatar billede andersmd Nybegynder
11. januar 2008 - 19:51 #8
Tag som f.eks:
side a:7
side b:9
side c:9,3
vinkel A:45 grader
vinkel B:65 grader
vinkel C:70 grader

og udfyld side a, side b og vinkel B, så giver vinkel A:0.6985251675444997
Avatar billede nielle Nybegynder
11. januar 2008 - 19:53 #9
Hvis:

0)

Side-A = 100
Side-B = 1
Vinkel-B = 90 grader

så er der ingen som helst mulig løsning for Side-C

1)

Side-A = 1
Side-B = kvadratroden af 2
Vinkel-B = 90 grader

så er der netop een mulig løsning for side-C (nemlig = 1=

2)

Side-A = 1
Side-B = 0,75
Vinkel-B = 45 grader

så er der præcis to forskellige løsninger for Side-C
Avatar billede andersmd Nybegynder
11. januar 2008 - 20:26 #10
Men hvis jeg kan regne vinkel A ud kan jeg regne vinkel C ud og derved regne side c ud sådan her:
side c=sin(vinkel C)/(sin(vinkel B/side b))
Avatar billede nielle Nybegynder
11. januar 2008 - 20:33 #11
Korrekt, men problemet er det samme for Vinkel-A i de 3 eksempler:

0) Der findes ikke nogen løsning for vinkel A.

1) Der findes netop en løsning for Vinkel-A - nemlig 45 grader

2) Der findes præcis to mulige værdier af Vinkel-A - en over og en under 90 grader.
Avatar billede nielle Nybegynder
11. januar 2008 - 20:43 #12
I øvrigt skal din formel være:

side c = sin(vinkel C)/(sin(vinkel B)/side b)

- eller bare:

side c = side b * sin(vinkel C)/sin(vinkel B)

Jeg gætter på at du bare fik placeret parantesen forkert ved et uheld. :^)
Avatar billede nielle Nybegynder
11. januar 2008 - 20:45 #13
Stryg lige 11/01-2008 20:43:29 ...

Formenlen for Side-C er:

Side-C = sin(Vinkel-C) * Side-B/sin(Vinkel-B)
Avatar billede andersmd Nybegynder
12. januar 2008 - 20:03 #14
Ok, men jeg har egenligt nu fundet ud af hvor jeg skulle sætte svaret 11/01-2008 19:03:44 ind i min formel... og det var egentlig det jeg spurgte om... Så smid lige et svar...
Avatar billede nielle Nybegynder
12. januar 2008 - 20:11 #15
Det er jo så amews_aj som skal smide et svar igen.

Hvis jeg i øvrigt må give et råd, så er det meget nemmere hvis du tager udgangspunkt i to af siderne og den vinkel som ligger imellem dem. F.eks.:

vSideA = document.fTrekantBeregn.inSideA.value
vSideB = document.fTrekantBeregn.inSideB.value
vVinkelC = document.fTrekantBeregn.inVinkelC.value

Den vil det aæltid være muligt at finde netop en løsning på.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester