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

时间:2012-06-27 12:02:04

标签: php geometry

$degree = 179;
$aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree));

以$ aX

返回742.710038369

但是当$ degree是180时;

$degree = 180;
$aX = $valueB + ($valueA - $aY)/tan(deg2rad($degree));

返回-8.1656196766E + 15作为$ aX

和类似的值一直到361完成一个完整的转弯并再次返回857.289961631作为$ aX。

如何解决此问题,是否需要转换不同的值或更改其他内容?

提前感谢您的回答!

EDIT;

$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);

1 个答案:

答案 0 :(得分:0)

正如其他评论所指出的那样,当结果应为普通数时,除以0确实给出或应该给出错误。目前的代码片段,如果确实存在可能的动机,则看起来像homogeneous coordinates的应用程序,它代表投影几何中的方向。将方向表示为具有线性表达式的线的斜率仅在斜率不垂直时起作用。在齐次坐标系中,您可以轻松地表示这些方向,并且可以在这些方向附近获得数值稳定性。

那就是说,我无法弄清楚目前的代码片段可能属于哪个应用程序,因此这个答案是否相关。