Php tan(deg2rad())返回180到360度之间的角度奇数值

Php tan(deg2rad())返回180到360度之间的角度奇数值,php,geometry,Php,Geometry,将742.710038369作为$aX返回 但当$degree为180时 $degree = 179; $aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree)); 返回-8.1656196766E+15作为$aX 当它完成一整圈并再次以$aX的形式返回857.289961631时,类似的值一直到361 我该如何解决这个问题?我需要转换不同的值还是更改其他值 提前感谢您的回答 编辑 正如其他评论所指出的,当结果应该是一个普通数字时,除以0会给出或

将742.710038369作为$aX返回

但当$degree为180时

$degree = 179;
$aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree));
返回-8.1656196766E+15作为$aX

当它完成一整圈并再次以$aX的形式返回857.289961631时,类似的值一直到361

我该如何解决这个问题?我需要转换不同的值还是更改其他值

提前感谢您的回答

编辑


正如其他评论所指出的,当结果应该是一个普通数字时,除以0会给出或应该给出一个错误。现在的代码片段,如果确实有可能的动机的话,看起来像是一个应用程序,它表示射影几何中的方向。仅当坡度不垂直时,使用线性表达式将方向表示为直线的坡度才有效。在齐次坐标系中,可以很容易地表示这些方向,并且可以在这些方向附近获得数值稳定性


也就是说,我无法猜出当前代码片段可能是哪个应用程序的一部分,因此这个答案是否相关。

tanM_PI应该是0,但由于四舍五入,它实际上是-1.2246063538224E-16。@HighPerformanceMark,它确实应该抛出一个异常或其他东西…我想说您得到的是PHP版本的plus和更少的infinite..@HighPerformanceMark我不知道我在哪里除以了0?问题是我不理解返回值。您可能想解释您试图实现的目标,例如,$aX、$aY、$valueA和$valueB是什么。但除此之外,如果您想了解$aY和deg2rad$degree的不同值的函数是什么样子的,请参阅您可能需要复制整个链接;我对$valueA和$valueB使用了一些任意值,对deg2rad$degree使用了x
$degree = 180;
$aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree));
$degree = 180;
$valueA = 800;
$valueB = 800;

$aY = ($valueB/64) * (64) -1;
$aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree));

$aY = round($aY/64,0);
$aX = round($aX/64,0);