对该函数背后的数学有点困惑

哈里·鲁滨逊

因此,我一直在研究将此笛卡尔坐标转换为极坐标的函数以及if语句if x == 0 and y>0 then theta == pi/2

但是,如果要计算theta,则只需遵循以下形式:

theta = atan(y/x).

令我困惑的是,如果x == 0此函数立即未定义?既然你被0这个除法应该趋向于无穷大吧?

那么,在该函数中如何声明x ==0 and y>0它始终等于pi / 2?

它可能是如此基本,我只是在将方法复杂化了很多……

提前致谢。

void carttopolar(float x, float y, double *radptr, double *thetaptr){
    float theta;
    *radptr = sqrt(x * x + y * y);
    if(x==0){
        if(y==0){
            theta = 0.0;
        }
        else if(y>0){
            theta = M_PI_2;
        }
        else{
            theta = -M_PI_2;
        }
    }
    else{
        theta = atan(y/x);
    }
    *thetaptr = theta;
}
牧羊人

关键是atan是tan的倒数,而tan实际上在某些点上会生成无限值,这是一张图片:
照片

该代码捕获了将无穷大的参数输入atan并返回产生无穷大的角度的情况(+/- pi / 2分别给出了正无穷大或负无穷大)。

普遍接受的方法是仅使用该atan2函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Scala高阶函数有点困惑

来自分类Dev

返回内部函数的真假,我有点困惑

来自分类Dev

对 NSDecimalNumber 有点困惑?

来自分类Dev

线程行为有点困惑

来自分类Dev

星号:对扩展的“参数”有点困惑

来自分类Dev

C ++中的输入流。与cin unget()函数有点困惑

来自分类Dev

如何在JavaScript中使用reduce函数?我对使用它有点困惑

来自分类Dev

对我的 if 循环没有运行有点困惑?

来自分类Dev

对信号量类有点困惑

来自分类Dev

我对Zend OPCache配置有点困惑

来自分类Dev

Fortran Coarrays:IFORT / GCC / Opencoarrays有点困惑

来自分类Dev

有点困惑,听着骨干模型上的变化

来自分类Dev

对方案中定义的缺点有点困惑

来自分类Dev

我有点困惑的按位运算

来自分类Dev

Ruby初学者,我有点困惑

来自分类Dev

我对 php 中的以下代码有点困惑

来自分类Dev

为什么我的循环没有结束有点困惑

来自分类Dev

有点与JavaScript中的Promise / Chained函数混淆

来自分类Dev

这个函数有点像单例吗?

来自分类Dev

返回指向const数据成员的const指针和'auto'关键字。有点困惑

来自分类Dev

C ++非静态数据成员初始化器,有点困惑

来自分类Dev

嗨,我有点困惑,我只是在linux中玩gdb而遇到

来自分类Dev

关于Django-Haystack的rebuild / update_index有点困惑

来自分类Dev

两个循环和move_uploaded_file,我有点困惑

来自分类Dev

我在这里有点困惑使用三元

来自分类Dev

嵌套标题对在这里做什么有点困惑

来自分类Dev

使用 const 时出错,我对使用 const 有点困惑

来自分类Dev

我有点困惑是在运行时还是编译时自动分配内存

来自分类Dev

关于我的数据库 MySQL 的语法有点令人困惑

Related 相关文章

热门标签

归档