Languages
[Edit]
DE

JavaScript - Math.acos() Methode - Beispiel

4 points
Created by:
Nikki
9650

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

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