Languages
[Edit]
DE

JavaScript - Math.acos() Methode - Beispiel

4 points
Created by:
Nikki
10520

Die Math.acos Funktion gibt die Zahl im Bogenmaß im Bereich 0 an Math.PI zurĂŒck. Basierend auf dieser Funktion kann man den Wert der invertierten Kosinusfunktion berechnen.

// ONLINE-RUNNER:browser;

//                                   Radiant                Grade
console.log( Math.acos( -2   ) ); // NaN
console.log( Math.acos( -1   ) ); // 3.1415926535897930 ->  180
console.log( Math.acos( -0.5 ) ); // 2.0943951023931957 -> ~120
console.log( Math.acos(  0   ) ); // 1.5707963267948966 ->   90
console.log( Math.acos(  0.5 ) ); // 1.0471975511965979 ->  ~60
console.log( Math.acos(  1   ) ); // 0                  ->    0
console.log( Math.acos(  2   ) ); // NaN

console.log( Math.acos(  0.7071067811865476   ) ); // 0.7853981633974483 -> 45 Grade
console.log( Math.acos(  0.8660254037844387   ) ); // 0.5235987755982987 -> 30 Grade

console.log(Math.acos( Math.cos(  Math.PI / 4))); // 0.7853981633974483-> pi/4 (45Grade)
console.log(Math.cos(  Math.acos( Math.PI / 4))); // 0.7853981633974483-> pi/4 (45Grade)

 Noch eine andere Möglichkeit, die acos -Funktion zu betrachten:

// ONLINE-RUNNER:browser;

function calculateAngle(b, h) {
	return Math.acos(b / h);
}

/*
  |\
  | \ h
a |  \
  |__*\ <- Winkel
    b
*/

var a, b, h;

// a, b und h bilden gleichschenklige rechtwinklige Dreiecke
a = 3; 
b = a;
h = Math.sqrt(a * a + b * b);
console.log( calculateAngle(b, h) ); // 0.7853981633974483 <-  45 Grade

// a, b und h bilden die HĂ€lfte des gleichseitigen Dreiecks
a = 3; 
b = a * Math.sqrt(3); 
h = Math.sqrt(a * a + b * b);
console.log( calculateAngle(b, h) ); // 0.5235987755982987 <- ~30 Grade

// a, b und h können kein Dreieck bilden
a = 3; 
b = a; 
h = 1;
console.log( calculateAngle(b, h) ); // NaN

1. Dokumentation

SyntaxMath.acos(number)
Parameter

number - Ganzzahl-oder Gleitkommazahlwert, der das Ergebnis der Operation adjacent / hypotenuse im rechtwinkligen Dreieck darstellt (primitiver Wert).

number soll im Bereich von -1 bis +1liegen. 

Ergebnis

Wert von number im Bogenmaß im Bereich von 0 bis Math.PI (primitiver Wert).

Wenn der Wert nicht berechnet werden kann, wird NaN zurĂŒckgegeben.

Beschreibung

acos ist eine statische Methode, die nur einen Parameter verwendet und eine Approximation an das Ergebnis der mathematischen Funktion arccosine(x)zurĂŒckgibt. 


2. Arbeit mit Graden

// ONLINE-RUNNER:browser;

function calculateAngle(b, h) {
	var angle = Math.acos(b / h);

    return (180 / Math.PI) * angle; // Radiant zu Graden Umwandlung
}

/*
  |\
  | \ h
a |  \
  |__*\ <- Winkel
    b
*/

var a, b, h;

// a, b und h bilden gleichschenklige rechtwinklige Dreiecke
a = 3; 
b = a;
h = Math.sqrt(a * a + b * b);
console.log( calculateAngle(b, h) ); // 45 Grade

// a, b und h bilden die HĂ€lfte des gleichseitigen Dreiecks
a = 3; 
b = a * Math.sqrt(3); 
h = Math.sqrt(a * a + b * b);
console.log( calculateAngle(b, h) ); // ~30 Grade

// a, b und h können kein Dreieck bilden
a = 3; 
b = a; 
h = 1;
console.log( calculateAngle(b, h) ); // NaN

3. Canvas-Diagramm - Beispiel

// ONLINE-RUNNER:browser;

<!doctype html>
<html>
<head>
  <style> #canvas { border: 1px solid black; } </style>
</head>
<body>
  <canvas id="canvas" width="200" height="200"></canvas>
  <script>
    
    var canvas = document.querySelector('#canvas');
    var context = canvas.getContext('2d');

    // Arccosin Chartbereich
    var x1 = -1.0;
    var x2 = +1.0;
    var y1 =  0;
    var y2 = +Math.PI

    var dx = 0.01;

    var xRange = x2 - x1;
    var yRange = y2 - y1;

    function calculatePoint(x) {
      var y = Math.acos(x);

      // Chart wird aufgrund von umgekehrten Canvas-Pixeln horizontal umgekehrt

      var nx = (x - x1) / xRange;       // normalized x
      var ny = 1.0 - (y - y1) / yRange; // normalized y
      
      var point = {
        x: nx * canvas.width,
        y: ny * canvas.height
      };

      return point;
    }

    console.log('x range: <' + x1 + '; ' + x2 + '>');
    console.log('y range: <' + y1 + '; ' + y2 + '> // angles in radians');

    var point = calculatePoint(x1);
    
    context.beginPath();
    context.moveTo(point.x, point.y);

    for (var x = x1 + dx; x < x2; x += dx) {
      point = calculatePoint(x);
      context.lineTo(point.x, point.y);
    }

    point = calculatePoint(x2);
    context.lineTo(point.x, point.y);
    context.stroke();

  </script>
</body>
</html>

Literaturverzeichnis

  1. Arkusfunktion - Wikipedia

Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

JavaScript - Objekt Math (DE)

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

â€ïžđŸ’» 🙂

Join