0
我在整个转换过程中将笛卡儿转换为极坐标,然后返回到笛卡尔以确认我的初始转换成功。将笛卡尔坐标转换为极坐标 - Matlab
但是,由于某些原因,当我从第三象限转换回极坐标的笛卡尔坐标时,我的x
和y
值是错误的。
就拿我这部分代码,例如:
x = -2.075548439;
y = -2.481775416;
if x < 0 && y < 0 % QUAD 3
radius = sqrt((x^2) + (y^2));
theta = atand((y*-1)/(x*-1));
theta = (270 - theta);
end
x = radius * cosd(theta);
y = radius * sind(theta);
% answer: x = -2.481775416, and y = -2.075548439
所有其他x
和y
转换落在其他三个象限内把x
和y
回到正确的顺序。
的这部分代码,但是,并把x
和y
回到正确的顺序:
x = 3.130287009;
y = -0.50613326;
if x > 0 && y < 0 % QUAD 4
radius = sqrt((x^2) + (y^2));
theta = atand((y*-1)/(x));
theta = (360 - theta);
end
x = radius * cosd(theta);
y = radius * sind(theta);
% answer: x = 3.130287009, and y = -0.50613326
而且更容易的是,'help cart2pol','help pol2cart',除非是他的任务。 – Jeon
谢谢,这工作得很好,并极大地缩短了我的剧本!我唯一需要做的就是从360中减去负角度,一旦复制并粘贴到Excel中以获得与我的其余数据匹配的正角度。 – user1574598