搜索
首页后端开发php教程atan() 的诅咒和 atan 的故事:编码世界迷失方向的故事

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

编码海盗你好?‍☠️ 你是否曾发现自己迷失在编码的海洋中,只是试图使用 atan() 找出角度,并因无法找到角度而感到沮丧正确的方向。你并不孤单今天我们要进行一次冒险,在那里我们将找到 PHP 中名为 atan2() 的宝藏。让我们看看为什么 atan() 会让你陷入危险,而 atan2() 会让你安全到达港口。

那么我们就开始旅程吧。 ⛵

想象你有一张藏宝图。有人谈论一个岛屿,它被导航到地图上的一个点 (x, y)。你可以使用atan()——但是停下来!这只是故事的一部分。 atan() 可以直接带您进入 Davy Jones 的储物柜,或者更糟糕的是,带您进入充满错误的代码库。 ?所以如果你想得到正确的路径,你需要atan2(),也就是这个故事中的杰克船长。

atan()诅咒的故事

这个atan()函数几乎在所有语言中都可以找到。我们谈论php。 atan()主要用于计算角度。但这里有一个问题 - atan() 只关心 y/x 比率,它不关心你在哪个象限。如果你开始完全信任他,你可能会发现你正走错方向。为什么?因为 atan() 不返回整个图像,它只告诉相对于第一象限的角度。

为什么?因为 atan() 不给出整个图像 - 它只给出相对于第一象限的角度。这意味着当你向西行驶时,你实际上应该向东行驶!另一方面,atan2() 会同时考虑 x 和 y 坐标,并且像一个好的指南针一样准确地知道您位于哪个象限。

现在让我们更多地了解这两者之间的区别。

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) 位于第二象限。现在我们可以很容易地了解金银岛在哪个方向了。

?弧度与度数(这不仅仅是数学,更是生活!)

PHP 的 atan() 和 atan2() 函数为您提供以弧度为单位的角度。这看起来像个笑话!别担心——这只是测量角度的不同方法。为了人类和海盗能够理解,我使用 rad2deg() 函数将其转换为度数。

我自己的atan()和atan2()

现在让我们尝试制作我们自己的atan()和atan2(),以更好地理解它们的操作。

⚠️ 如果您觉得这超出了您的理解范围,请跳过本节! ?

让我们创建 atan()

atan() 计算数字的反正切。近似该函数的一种方法是使用格雷戈里级数。以下是atan(z)的常用级数:

atan( x)Σn=0(1)nx2n 12n 1 这里(x)近似sum_{n=0}^{infty} frac{(-1)^n x^{2n 1}}{2n 1} 此处(x)≈n=0 Σ 2n 1 (−1)n x2n 1

如果写得直一些,则代表 -

atan( x)xx33 x5 5x77 atan(x) 近似 x - frac{x^3}{3} frac{x^5}{5} - frac{x^7}{7}点 atan(x)≈x−3x3 5x57x7

现在让我们用代码编写这个系列

 atan(float $num): float

让我们创建atan2()

现在我们将使用 atan() 函数来创建

atan2()。该函数的主要任务是仅识别正确的象限。那么为什么要拖延呢,我们来写吧 -

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

现在让我告诉你整个故事

现在我们看一下四个象限结果并解释每个象限:

  • 第一象限(象限 I): 什么时候 x=10x = 10x=10 y=5y = 5y=5 那么atan($y / $x) 是26.57 度,atan2($y, $x) 是26.56 度。这两种情况都是在第一季度。
  • 第二象限(象限 II): 什么时候 x=10x = -10 x=−10 y=5y = 5y=5 那么atan($y / $x) 是-26.57 度,atan2($y, $x) 是153.43 度。这里atan2()清楚地表明了第二季度。
  • 第三象限(第三象限): 什么时候 x=10x = -10 x=−10 y=5y = -5 y=−5 那么atan($y / $x) 是-26.57 度,atan2($y, $x) 是-233.43 度。现在是第三季了。
  • 第四象限(第四象限): 什么时候 x=10x = 10x=10 y=5y = -5 y=−5 那么atan($y / $x) 是-26.57 度,atan2($y, $x) 是-26.56 度。这是第四季。

☠️从错误中学习

所以下次当你在危险的角度和坐标海洋中航行时,不要仅仅依赖 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何防止会话固定攻击?如何防止会话固定攻击?Apr 28, 2025 am 12:25 AM

防止会话固定攻击的有效方法包括:1.在用户登录后重新生成会话ID;2.使用安全的会话ID生成算法;3.实施会话超时机制;4.使用HTTPS加密会话数据,这些措施能确保应用在面对会话固定攻击时坚不可摧。

您如何实施无会话身份验证?您如何实施无会话身份验证?Apr 28, 2025 am 12:24 AM

实现无会话身份验证可以通过使用JSONWebTokens(JWT)来实现,这是一种基于令牌的认证系统,所有的必要信息都存储在令牌中,无需服务器端会话存储。1)使用JWT生成和验证令牌,2)确保使用HTTPS防止令牌被截获,3)在客户端安全存储令牌,4)在服务器端验证令牌以防篡改,5)实现令牌撤销机制,如使用短期访问令牌和长期刷新令牌。

PHP会议有哪些常见的安全风险?PHP会议有哪些常见的安全风险?Apr 28, 2025 am 12:24 AM

PHP会话的安全风险主要包括会话劫持、会话固定、会话预测和会话中毒。1.会话劫持可以通过使用HTTPS和保护cookie来防范。2.会话固定可以通过在用户登录前重新生成会话ID来避免。3.会话预测需要确保会话ID的随机性和不可预测性。4.会话中毒可以通过对会话数据进行验证和过滤来预防。

您如何销毁PHP会议?您如何销毁PHP会议?Apr 28, 2025 am 12:16 AM

销毁PHP会话需要先启动会话,然后清除数据并销毁会话文件。1.使用session_start()启动会话。2.用session_unset()清除会话数据。3.最后用session_destroy()销毁会话文件,确保数据安全和资源释放。

如何更改PHP中的默认会话保存路径?如何更改PHP中的默认会话保存路径?Apr 28, 2025 am 12:12 AM

如何改变PHP的默认会话保存路径?可以通过以下步骤实现:在PHP脚本中使用session_save_path('/var/www/sessions');session_start();设置会话保存路径。在php.ini文件中设置session.save_path="/var/www/sessions"来全局改变会话保存路径。使用Memcached或Redis存储会话数据,如ini_set('session.save_handler','memcached');ini_set(

您如何修改PHP会话中存储的数据?您如何修改PHP会话中存储的数据?Apr 27, 2025 am 12:23 AM

tomodifyDataNaphPsession,startTheSessionWithSession_start(),然后使用$ _sessionToset,修改,orremovevariables.1)startThesession.2)setthesession.2)使用$ _session.3)setormodifysessessvariables.3)emovervariableswithunset()

举一个在PHP会话中存储数组的示例。举一个在PHP会话中存储数组的示例。Apr 27, 2025 am 12:20 AM

在PHP会话中可以存储数组。1.启动会话,使用session_start()。2.创建数组并存储在$_SESSION中。3.通过$_SESSION检索数组。4.优化会话数据以提升性能。

垃圾收集如何用于PHP会议?垃圾收集如何用于PHP会议?Apr 27, 2025 am 12:19 AM

PHP会话垃圾回收通过概率机制触发,清理过期会话数据。1)配置文件中设置触发概率和会话生命周期;2)可使用cron任务优化高负载应用;3)需平衡垃圾回收频率与性能,避免数据丢失。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器