Heim  >  Artikel  >  Backend-Entwicklung  >  Der Fluch von atan() und die Geschichte von atan: Eine Geschichte der Orientierungslosigkeit in der Programmierwelt

Der Fluch von atan() und die Geschichte von atan: Eine Geschichte der Orientierungslosigkeit in der Programmierwelt

DDD
DDDOriginal
2024-10-24 19:02:02963Durchsuche

atan() এর অভিশাপ এবং atan এর কাহিনী: কোডিং জগতে দিশা হারানোর গল্প

Hallo Coder-Piraten ?‍☠️ Haben Sie sich schon einmal im Codierungsmeer verloren gefühlt, als Sie nur versucht haben, den Winkel mit atan() herauszufinden, und frustriert waren, dass Sie den nicht finden können richtige Richtung. Sie sind nicht allein Heute begeben wir uns auf ein Abenteuer, bei dem wir den Schatz namens atan2() in PHP finden. Mal sehen, warum atan() Sie in Gefahr bringen kann, während atan2() Sie sicher zum Hafen bringt.

Dann lasst uns die Reise beginnen. ⛵

Stellen Sie sich vor, Sie hätten eine Schatzkarte. Die Rede ist von einer Insel, die zu einem Punkt (x, y) auf der Karte navigiert wird. Sie können atan() verwenden – aber hören Sie auf! Es ist nur ein Teil der Geschichte. atan() kann Sie direkt zum Spind von Davy Jones oder, schlimmer noch, zu einer Codebasis voller Fehler führen. ? Wenn Sie also den richtigen Weg finden möchten, benötigen Sie atan2(), den Captain Jack Sparrow dieser Geschichte.

Die Geschichte von atan()s Fluch

Diese atan()-Funktion ist in fast allen Sprachen zu finden. Wir reden über PHP. atan() wird hauptsächlich zur Winkelberechnung verwendet. Aber hier gibt es ein Problem – atan() kümmert sich nur um das y/x-Verhältnis, es ist egal, in welchem ​​Quadranten Sie sich befinden. Wenn Sie anfangen, ihm vollständig zu vertrauen, stellen Sie möglicherweise fest, dass Sie in die falsche Richtung gehen. Warum? Denn atan() gibt nicht das gesamte Bild zurück, sondern gibt nur den Winkel relativ zum ersten Quadranten an.

Warum? Da atan() nicht das gesamte Bild liefert, sondern nur den Winkel relativ zum ersten Quadranten. Das heißt, wenn Sie nach Westen fahren, sollten Sie eigentlich nach Osten reisen! atan2() hingegen berücksichtigt sowohl x- als auch y-Koordinaten und weiß – wie ein guter Kompass – genau, in welchem ​​Quadranten Sie sich befinden.

Lassen Sie uns nun etwas mehr über den Unterschied zwischen diesen beiden erfahren.

Unterschied zwischen atan() und atan2()

Jetzt sagen wir es in Codesprache:

  • atan() berechnet den Arkustangens des Verhältnisses y/x, kennt aber nicht das gesamte Bild. Liegt das Ziel im zweiten Quadranten? Dritte? atan() hat keine Ahnung und kümmert sich nicht einmal darum.

Der Parameter der atan()-Funktion ist eine Zahl, die der Wert des Verhältnisses y/x ist, wobei y und x zwei Variablen oder Zahlenwerte sind.

 atan(float $num): float
  • Andererseits weiß atan2() genau, wo sich der (x, y)-Punkt befindet, und gibt den richtigen Winkel in jedem Quadranten zurück.
Die Parameter der Funktion

atan2() sind 2.

  • $y: Y-Koordinatenwert.
  • $x: X-Koordinatenwert.
 atan2(float $y, float $x): float

Versuchen wir, die Sache anhand eines Beispiels zu verstehen.

// $y এবং $x এর মান নির্ধারণ
$y = 5;
$x = -10;

// atan() ব্যবহার - শুধুমাত্র y/x অনুপাত জানে
$angle1 = atan($y / $x);
echo "atan() angle: " . rad2deg($angle1) . " degrees\n";
// Outputs: -26.57 degrees

// atan2() ব্যবহার - $x এবং $y উভয়ই বিবেচনায় নেয়
$angle2 = atan2($y, $x);
echo "atan2() angle: " . rad2deg($angle2) . " degrees\n";
// Outputs: 153.43 degrees

Wie Sie dem Beispiel entnehmen können, gibt atan() tatsächlich einen Winkel zurück. Aber die Richtung ist nicht aussagekräftig. Das heißt, es ist nicht klar, in welchem ​​Quadranten Sie sich befinden. Andererseits zeigt der Wert, den wir mit der Funktion atan2() erhalten, deutlich, dass der Punkt (x, which) im 2. Quadranten liegt. Jetzt können wir leicht verstehen, in welche Richtung die Schatzinsel liegt.

?Bogenmaß vs. Grad (Es ist nicht nur Mathematik, es ist Leben!)

Die PHP-Funktionen atan() und atan2() geben Ihnen einen Winkel im Bogenmaß an. Was wie ein Witz aussieht! Keine Sorge – es ist nur eine andere Methode zur Winkelmessung. Damit Menschen und Piraten es verstehen, habe ich es mit der Funktion rad2deg() in Grad umgewandelt.

Mein eigener atan() und atan2()

Lassen Sie uns nun versuchen, atan() und atan2() zu unseren eigenen zu machen, um ihre Funktionsweise besser zu verstehen.

⚠️ Wenn Sie das Gefühl haben, dass Ihnen das zu viel wird, überspringen Sie diesen Abschnitt! ?

Lass uns atan() erstellen

atan() berechnet den Arkustangens einer Zahl. Eine Möglichkeit, diese Funktion anzunähern, ist die Verwendung der Gregory-Reihe. Hier ist eine häufig verwendete Reihe für atan(z):

atan( x)n=0(1)nx2n 12n 1 hier(x) ungefähr sum_{n=0}^{infty} frac{(-1)^n x^{2n 1}}{2n 1} hier(x)≈n=0 2n 1 (−1)n x2n 1

was, wenn man es etwas gerader schreibt, steht -

atan( x)xx33 x5 5x77 atan(x) approx x - frac{x^3}{3} frac{x^5}{5} - frac{x^7}{7}ldots atan(x)≈x−3x3 5x5>7x7

Jetzt schreiben wir diese Serie im Code

 atan(float $num): float

Lass uns atan2() erstellen

Jetzt verwenden wir die Funktion atan(), um

atan2() zu erstellen. Die Hauptaufgabe dieser Funktion besteht lediglich darin, den richtigen Quadranten zu identifizieren. Warum also zögern, lasst uns schreiben –

 atan2(float $y, float $x): float

Lassen Sie mich Ihnen jetzt die ganze Geschichte erzählen

Jetzt schauen wir uns die Ergebnisse der vier Quadranten an und erklären jeden Quadranten:

  • Erster Quadrant (Quadrant I): Wann x=10x = 10x=10 Und y=5y = 5y=5 Dann beträgt atan($y / $x) 26,57 Grad und atan2($y, $x) 26,56 Grad. Hier ist es in beiden Fällen im ersten Quartal.
  • Zweiter Quadrant (Quadrant II): Wann x=10x = -10 x=−10 Und y=5y = 5y=5 Dann beträgt atan($y / $x) -26,57 Grad und atan2($y, $x) 153,43 Grad. Hier weist atan2() eindeutig auf das zweite Quartal hin.
  • Dritter Quadrant (Quadrant III): Wann x=10x = -10 x=−10 Und y=5y = -5 y=−5 Dann beträgt atan($y / $x) -26,57 Grad und atan2($y, $x) -233,43 Grad. Es ist im dritten Quartal.
  • Vierter Quadrant (Quadrant IV): Wann x=10x = 10x=10 Und y=5y = -5 y=−5 Dann beträgt atan($y / $x) -26,57 Grad und atan2($y, $x) -26,56 Grad. Hier ist es im vierten Quartal.

☠️ Aus Fehlern lernen

Wenn Sie also das nächste Mal durch das gefährliche Meer aus Winkeln und Koordinaten navigieren, verlassen Sie sich nicht nur auf atan(). Verwenden Sie atan2() und steuern Sie Ihr Schiff jedes Mal in die richtige Richtung. Es ist der Kompass, der Sie vor dem gefürchteten Davy-Jones-Schrank voller Fehleinschätzungen bewahrt!

Ich hoffe, deine Schatzreise verläuft gut.

Wenn Sie mehr über atan() und atan2() erfahren möchten, besuchen Sie die folgenden Links:

  • https://www.php.net/manual/en/function.atan.php
  • https://www.php.net/manual/en/function.atan2.php

Das obige ist der detaillierte Inhalt vonDer Fluch von atan() und die Geschichte von atan: Eine Geschichte der Orientierungslosigkeit in der Programmierwelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn