|||
参考代码:https://zhuanlan.zhihu.com/p/139760930
在其基础上进行的修改。
function [azimuth, dist ] = GetAzimuth_2points(point1, point2) %% 功能:求Point1,相对与Point2的相对方位和距离 % point的格式:[x,y] % 批量操作 % point_Set = [1 0;1 1; 0 1; -1 1; -1 0; -1 -1; 0 -1; 1 -1;]; % point2 = [0 0]; % for i = 1:size(point_Set,1) % [azimuth, dist ] = GetAzimuth_2points(point_Set(i,:), point2) % end P_local = [point1(1)-point2(1) point1(2)-point2(2)]; dist = sqrt(P_local(1)^2+P_local(2)^2); P_local(1); % 水平方向 P_local(2); % 竖直方向 %% azimuth: 指右方向为0度,然后逆时针为正,直到360度 % % if (P_local(2)>=0) % 第一、二象限、X轴以上部分 % % azimuth = acos(P_local(1)/dist) * 180/pi; % % return; % % end % % if (P_local(2)<0) % 第三、四象限 % % azimuth = 360 - acos(P_local(1)/dist)*180/pi; % % return; % % end %% azimuth: 指北方向为0度,然后顺时针为正,直到360度 if (P_local(1)>=0) % 第一、三象限、Y轴以右部分 azimuth = acos(P_local(2)/dist) * 180/pi; return; end if (P_local(1)<0) % 第二、四象限、Y轴以左部分 azimuth = 360 - acos(P_local(2)/dist)*180/pi; return; end
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-6-5 14:45
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社