atan()의 저주와 atan의 이야기: 코딩 세계의 방향 감각 상실 이야기

DDD
풀어 주다: 2024-10-24 19:02:02
원래의
1039명이 탐색했습니다.

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

안녕하세요 Coders Pirates ?‍☠️ atan()을 사용하여 각도를 알아내려고 코딩의 바다에서 길을 잃었지만 찾을 수 없어서 좌절한 적이 있습니까? 올바른 방향. 당신은 혼자가 아닙니다 오늘 우리는 PHP에서 atan2()라는 보물을 찾는 모험을 떠날 것입니다. atan()이 당신을 위험에 빠뜨리는 반면 atan2()는 당신을 안전하게 포팅할 수 있는 이유를 살펴보겠습니다.

그럼 여행을 시작하겠습니다. ⛵

보물지도가 있다고 상상해 보세요. 지도의 (x, y) 지점으로 이동하는 섬에 대한 이야기가 있습니다. atan()을 사용할 수 있지만 중지하세요! 그것은 이야기의 일부일 뿐입니다. atan()을 사용하면 Davy Jones의 보관함으로 바로 이동하거나 더 나쁘게는 버그가 가득한 코드베이스로 이동할 수 있습니다. ? 그래서 올바른 길을 가고 싶다면 이 이야기의 잭 스패로우 선장 atan2()가 필요합니다.

atan()의 저주 이야기

이 atan() 함수는 거의 모든 언어에서 찾을 수 있습니다. 우리는 PHP에 대해 이야기합니다. atan()은 주로 각도를 계산하는 데 사용됩니다. 그러나 여기에 문제가 있습니다. atan()은 y/x 비율에만 관심이 있고, 어느 사분면에 있는지는 관심이 없습니다. 그를 완전히 신뢰하기 시작하면 잘못된 방향으로 가고 있다는 것을 알게 될 수도 있습니다. 왜? atan()은 전체 이미지를 반환하지 않기 때문에 첫 번째 사분면에 상대적인 각도만 알려줍니다.

왜요? atan()은 전체 이미지를 제공하지 않기 때문에 — 첫 번째 사분면에 상대적인 각도만 알려줍니다. 즉, 서쪽으로 갈 때는 실제로 동쪽으로 여행해야 한다는 뜻입니다! 반면에 atan2()는 x와 y 좌표를 모두 고려하며 마치 좋은 나침반처럼 현재 어느 사분면에 있는지 정확히 알 수 있습니다.

이제 이 2가지의 차이점에 대해 좀 더 알아볼까요?

atan()과 atan2()의 차이점

이제 코드 언어로 말해 보겠습니다.

  • atan()은 y/x 비율의 아크탄젠트를 계산하지만 전체 이미지를 알지 못합니다. 목표가 두 번째 사분면에 있습니까? 제삼? atan()은 전혀 모르고 귀찮게 하지도 않습니다.

atan() 함수의 매개변수는 y/x 비율의 값인 숫자입니다. 여기서 y와 x는 두 개의 변수 또는 숫자 값입니다.

 atan(float $num): float
로그인 후 복사
로그인 후 복사
  • 반면 atan2()는 (x, y) 지점이 어디에 있는지 정확히 알고 모든 사분면에서 올바른 각도를 반환합니다.

atan2() 함수의 매개변수는 2입니다.

  • $y: Y 좌표값.
  • $x: X 좌표값.
 atan2(float $y, float $x): float
로그인 후 복사
로그인 후 복사

예를 들어 문제를 이해해 보겠습니다.

// $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
로그인 후 복사

예제에서 볼 수 있듯이 atan()은 각도를 반환합니다. 그러나 방향은 말해주지 않습니다. 즉, 당신이 어느 사분면에 있는지 알 수 없습니다. 반면에 atan2() 함수로 얻은 값은 점(x, which)이 2사분면에 있음을 명확하게 보여줍니다. 이제 우리는 보물섬이 어느 방향인지 쉽게 이해할 수 있습니다.

?라디안 대 도(단순한 수학이 아니라 살아있는 것입니다!)

PHP의 atan() 및 atan2() 함수는 라디안 단위의 각도를 제공합니다. 농담처럼 보이는군요! 걱정하지 마십시오. 이는 각도를 측정하는 다른 방법일 뿐입니다. 인간과 해적들이 이해할 수 있도록 rad2deg() 함수를 사용하여 도 단위로 변환했습니다.

내 자신의 atan() 및 atan2()

이제 atan()과 atan2()를 자체적으로 만들어서 작동 방식을 더 잘 이해해 보겠습니다.

⚠️ 이 내용이 너무 부담스럽다면 이 섹션을 건너뛰세요! ?

atan()을 만들어보자

atan()은 숫자의 아크탄젠트를 계산합니다. 이 함수를 근사화하는 한 가지 방법은 Gregory 계열을 사용하는 것입니다. atan(z)에 일반적으로 사용되는 시리즈는 다음과 같습니다.

tn( x)n=0 >)nx2n12n 1 여기(x) 대략적인 합계_{n=0}^{infty} frac{(-1)^n x^{2n 1}}{2n 1} 여기(x)≒n=0 무한대 2n1 (−1)n x2n 1

좀 더 직설적으로 쓰면 -

tn( x)xx33 x5 5x77 atan(x) 약 x - 분수{x^3}{3} 분수{x^5}{5} - 분수{x^7}{7}LDOTS atan(x)≒x−3x3 5x57x7

이제 이 시리즈를 코드로 작성해 보겠습니다

 atan(float $num): float
로그인 후 복사
로그인 후 복사

atan2()를 만들어보자

이제 atan() 함수를 사용하여

atan2()를 생성하겠습니다. 이 기능의 주요 임무는 올바른 사분면만 식별하는 것입니다. 그럼 왜 미루나요, 글을 쓰자 -

 atan2(float $y, float $x): float
로그인 후 복사
로그인 후 복사

이제 전체 이야기를 들려드릴게요

이제 4개 사분면 결과를 살펴보고 각 사분면에 대해 설명합니다.

  • 첫 번째 사분면(I사분면): 언제 x=10x = 10x=10 그리고 y=5y = 5y=5 그러면 atan($y / $x)는 26.57도이고 atan2($y, $x)는 26.56도입니다. 여기서는 두 경우 모두 1분기에 해당됩니다.
  • 두 번째 사분면(II 사분면): 언제 x=10x = -10 x=−10 그리고 y=5y = 5y=5 그런 다음 atan($y / $x)는 -26.57도이고 atan2($y, $x)는 153.43도입니다. 여기서 atan2()는 확실히 2분기를 나타냅니다.
  • 3사분면(III사분면): 언제 x=10x = -10 x=−10 그리고 y=5y = -5 y=−5 그런 다음 atan($y / $x)는 -26.57도이고 atan2($y, $x)는 -233.43도입니다. 3분기입니다.
  • 4사분면(4사분면): 언제 x=10x = 10x=10 그리고 y=5y = -5 y=−5 그런 다음 atan($y / $x)는 -26.57도이고 atan2($y, $x)는 -26.56도입니다. 4분기입니다.

☠️ 실수로부터 배우기

그러니 다음 번에 각도와 좌표가 난무하는 위험한 바다를 항해할 때는 atan()에만 의존하지 마세요. atan2()를 사용하여 매번 올바른 방향으로 배를 조종하세요. 당신을 무서운 계산 착오의 데비 존스 사물함에서 벗어나게 해줄 나침반입니다!

당신의 보물여행이 잘 되길 바랍니다.

atan() 및 atan2()에 대해 더 자세히 알고 싶다면 다음 링크를 방문하세요.

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

위 내용은 atan()의 저주와 atan의 이야기: 코딩 세계의 방향 감각 상실 이야기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿