$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);
答案 0 :(得分:0)
正如其他评论所指出的那样,当结果应为普通数时,除以0确实给出或应该给出错误。目前的代码片段,如果确实存在可能的动机,则看起来像homogeneous coordinates的应用程序,它代表投影几何中的方向。将方向表示为具有线性表达式的线的斜率仅在斜率不垂直时起作用。在齐次坐标系中,您可以轻松地表示这些方向,并且可以在这些方向附近获得数值稳定性。
那就是说,我无法弄清楚目前的代码片段可能属于哪个应用程序,因此这个答案是否相关。