Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Math.atan2中找到正确的象限?_Java - Fatal编程技术网

Java 如何从Math.atan2中找到正确的象限?

Java 如何从Math.atan2中找到正确的象限?,java,Java,我正在使用Math.atan2通过提供θY和X来获得θ,但是如何获得右象限 这个代码正确吗?我正在使用SVG,我需要将圆定位在右象限中 double angle = Math.atan2(y, x); if (angle >= 0 && angle < Math.PI/2 ){ // 1st } else if (angle >= Math.PI/2 &&am

我正在使用
Math.atan2
通过提供θ
Y
X
来获得θ,但是如何获得右象限

这个代码正确吗?我正在使用SVG,我需要将圆定位在右象限中

        double angle = Math.atan2(y, x);

        if (angle >= 0 &&  angle < Math.PI/2  ){
            // 1st
        }

        else if (angle >= Math.PI/2 && angle <  Math.PI) {
            //2nd

        }

        else if (angle >= - Math.PI && angle  < -(Math.PI/2)) {

            //third
        }
        else if (angle >= -(Math.PI/2) && angle < 0) {

        // fourth
        }
double angle=Math.atan2(y,x);
如果(角度>=0&&angle=Math.PI/2&&angle=-Math.PI&&angle<-(Math.PI/2)){
//第三
}
否则如果(角度>=-(数学PI/2)和角度<0){
//第四
}

除了一些小问题外,您的代码似乎可以正常工作

我将替换所有的
=
除非您希望在象限中包含轴。/p
从理论上讲,如果你只是想知道圆的位置,为什么不使用你已有的(x,y)对呢?如果您必须使用polar,那么您可以信任codeatan2/code来给出正确的象限。但是,如果您只需要找到象限,似乎根本不需要使用codeatan2/code,因为您已经有了codex/code和codey/code值。(你可以检查codex>0&&y>0并说这是第一象限,等等)

我实际上需要使用polarI,认为svg足够复杂,只需给出
(r,θ)
。为什么你需要象限?我在遵循一个算法,在这个算法中,我必须将一个随机圆放置在距离最短的现有圆附近。我必须确保角度保持不变。因此,如果新的圆最终位于第一象限,我必须设置
x=CX+R*cos(θ)
y=CY+R*sin(θ)
,同样,如果它位于第二象限,我必须设置
x=CX-R*cos(θ)
y=CY+R*sin(θ)
。在这里解释可能太长了。所以我需要知道正确的象限,以便在需要时进行减法。我不确定这是否清楚,不管怎样,我认为你回答了我的等式。如果你有进一步的输入,请让我知道!好的,
sin
cos
的值都是从
-1
1
,所以你只需要推一下
theta
sin
cos
函数就可以帮你减法了,对吗?