C++ 如何从atan2角度返回坐标

C++ 如何从atan2角度返回坐标,c++,trigonometry,atan2,C++,Trigonometry,Atan2,我使用atan2(-6/35)计算了(-6/35)的角度。 结果是-9.7275785514016047 现在,为了回到过去,我使用了 我尝试获取坐标(-6/35) 但是我得到了(-33.89501279701419/10.589056022311761) 所以我认为这是错误的,因为atan2是在4象限上定义的,sin和cos只在2上定义的 这是正确的吗? 如何做对 编辑: 首先,我很抱歉用一种糟糕的方式描述我的问题。 我实际上做了以下几件事 int main(int argc, char*

我使用atan2(-6/35)计算了
(-6/35)
的角度。 结果是
-9.7275785514016047

现在,为了回到过去,我使用了

我尝试获取坐标
(-6/35)
但是我得到了(
-33.89501279701419/10.589056022311761

所以我认为这是错误的,因为
atan2
是在4象限上定义的,
sin
cos
只在2上定义的

这是正确的吗? 如何做对

编辑:

首先,我很抱歉用一种糟糕的方式描述我的问题。 我实际上做了以下几件事

int main(int argc, char* argv[])
{
   int x = -6;
   int y = 35;
   double radian = atan2(x,y);  // this was wrong. atan2(y,x) is correct.
   double degree = radian  * (360 / (2 * 3.14159265358979323846));
   double distance = sqrt(6*6+35*35);

   double x1 = distance * cos(degree); // Wrong because I used degree
   double y1 = distance * sin(degree); // instead of radian

   return 0;
}

您以错误的方式使用
atan2
。atan2的函数声明是:

double atan2 (double y, double x);
所以角度是:

double angle = atan2(35, -6); // 1.74057 radians or 99.72758 degree

为了使用atan2函数获得角度,然后使用正弦和余弦返回笛卡尔坐标,您需要稍微不同地使用它们,正如您已经说过的

正如LightnessRacesInOrbit和user38034所说,atan2函数有两个参数。第一个是y,第二个是x

考虑以下JS代码段:

var x = -6.0;
var y = 35.0;

var at = Math.atan2(y, x);
console.log(at);

var dist = (x*x) + (y*y);
dist = Math.sqrt(dist);
console.log(dist);

var x1 = dist * Math.cos(at);
var y1 = dist * Math.sin(at);

console.log( {x:x1, y:y1} );
此代码段的输出为:

1.740574600763235
35.510561809129406
Object {x: -5.999999999999998, y: 35}

“我用atan2(-6/35)计算了(-6/35)的角度。”不,你没有。函数接受两个参数,而不是一个。@Lightness Races in Orbit我使用-6作为参数1,35作为参数2这不是你的问题所说的。谢谢。我改变了它,现在我得到99.72758度,但是坐标仍然是错误的(24.654041707636729×25.557351730531639)@ RyValDz如何显示你正在做什么,所以有人可以告诉你哪里是错误的,而不是希望他们能猜到?@ RValDz在C++中的所有三角函数(和我知道的任何语言)都使用弧度,而不是度。code>distance*cos(1.74057)gives
-6
distance*sin(1.74057)
gives
35
@R\u Valdez请阅读有关如何寻求帮助的任何教程。您发布的内容不可编译,缺少关键部分。@user38034您是对的,我使用度而不是弧度。你可以贴一个答案,我会接受的。
1.740574600763235
35.510561809129406
Object {x: -5.999999999999998, y: 35}