GuoKeCCC的个人博客分享 http://blog.sciencenet.cn/u/GuoKeCCC

博文

[转载]matlab求两坐标点组成直线的方位角

已有 2001 次阅读 2022-7-4 11:13 |个人分类:MATLAB|系统分类:科研笔记|文章来源:转载

参考代码: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





https://m.sciencenet.cn/blog-3486942-1345787.html

上一篇:matlab导出矢量图并插入word

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 19:07

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部