在将笛卡尔笛卡尔转换为极地,然后又回到笛卡尔笛卡尔的整个转换过程中,我遇到了问题,以确认我的初始转换成功。
但是,由于某些原因,当我从第三象限转换回具有极坐标的笛卡尔坐标时,myx
和y
values的处理方式是错误的。
以我的代码的这一部分为例:
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
您无需检查特殊情况。对于任何象限中的点,以下代码都可以将笛卡尔正确转换为极坐标。
x = -2.075548439;
y = -2.481775416;
radius = sqrt( (x^2) + (y^2) );
theta = atan2d( y, x );
x = radius * cosd(theta);
y = radius * sind(theta);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句