2016-09-23 80 views
0

직교를 극좌표로 변환하는 과정에서 문제가 발생했다가 처음 직각이 성공했는지 확인하기 위해 데카르트로 되돌아갑니다.직교 좌표를 극좌표로 변환 - Matlab

그러나 제 3 사분면의 극좌표가있는 데카르트 좌표로 다시 변환 할 때 어떤 이유로 인해 xy 값이 잘못되었습니다.

는 예를 들어 내 코드의이 부분을 가지고 :

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 

다른 세 사분면에 속하는 다른 모든 xy 전환은 올바른 순서로 다시 xy을 넣어.

코드의이 부분은, 그러나, 올바른 순서로 다시 xy을 넣어 않습니다 당신은 특별한 경우를 확인 할 필요가 없습니다

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 

답변

0

. 다음 코드는 모든 사분면의 점에 대해 직교 좌표에서 극 좌표로 올바르게 변환합니다.

x = -2.075548439; 
y = -2.481775416; 

radius = sqrt((x^2) + (y^2)); 
theta = atan2d(y, x); 

x = radius * cosd(theta); 
y = radius * sind(theta); 
+3

더 쉽게, 'help cart2pol','help pol2cart', 그것이 그의 임무가 아니라면. – Jeon

+0

고마워, 그건 잘 작동하고 대본을 엄청나게 단축 시켰어! 내가해야만 한 일은 360에서 음의 각도를 빼서 복사 한 다음 양수 각도를 얻기 위해 Excel에 붙여 넣어 나머지 데이터와 일치시키는 것입니다. – user1574598