저는 구면 좌표계에서 각에 대한 다양한 이름과 혼동을 느낍니다. Matlab 문서에 따르면 "방위각과 고도는 라디안 단위의 각 변위이고, 방위각은 양의 x 축에서 측정 된 xy 평면의 반 시계 방향 각도이며 고도는 xy 평면에서의 높이입니다 r은 원점에서부터 요점."데카르트에서 구형으로 전환 MATLAB?
좋아요, 나는 방위각을 쎄타로, 그리고 고도 각을 Phi로 부를 것입니다. 이제 Cartesian을 Spherical로 변환하는 함수를 만들고 싶습니다. 내가 Matlab에서의 기능을 사용하는 경우 이것은 내가 지금
function [y] = my_car2sph(x)
d = sqrt(x(1)^2 + x(2)^2 + x(3)^2);
Phi = acos(x(3)/d); % elevation angle
Theta = atan2(x(2),x(1)); % azimuth
y = [d; Theta; Phi];
,
>> my_car2sph([1; 1; 1])
ans =
1.7321 <--- d
0.7854 <--- Theta (azimuth)
0.9553 <--- Phi (elevation)
이제이 함수의 출력을했던 것입니다, 이것은 내가 갖는 것입니다
>> [azimuth,elevation,r] = cart2sph(1,1,1)
azimuth =
0.7854
elevation =
0.6155
r =
1.7321
>>
왜 앙각 (Phi)은 동일하지 않습니까?
명령 창에'edit cart2sph'라고 입력하면 코드를 볼 수 있습니다. – horchler
@horchler, +1이 정보입니다. 답장을 보내 주셔서 감사합니다. – CroCo