1 Star 1 Fork 1

A.Star/pathPlanning4m

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
inPoly.m 969 Bytes
一键复制 编辑 原始数据 按行查看 历史
unknown 提交于 2017-05-30 14:37 . 新建避障路径规划算法代码
function flags = inPoly(p,poly)
% 判断点是否在多边形内
% flag(i)为奇数,那么在,偶数为不在
% p : pn*2 矩阵
% poly :polyn*2 矩阵,注意,起点和终点需要相同
% See also lineInPoly
% 致谢博客 http://www.cnblogs.com/dwdxdy/p/3230647.html
% Author A.Star
% e-mail : chenxiaolong12315@163.com
% 2017-5-30
if ~(poly(1,1) == poly(end,1)&&poly(1,2) == poly(end,2))
poly = [poly;poly(1,:)];
end
pn = size(p,1);
polyn = size(poly,1);
flags = zeros(1,pn);
for i=1:pn
if ~isempty(find(poly(:,1)==p(i,1)& poly(:,2)==p(i,2)))%找到一个相同的点即可
flags(i) = 1;
continue;%%结束pn=1,进入pn=2
end
for j=2:polyn
if ((((poly(j,2)<=p(i,2)) && (p(i,2) < poly(j-1,2) )) ||...
((poly(j-1,2) <= p(i,2)) && (p(i,2) < poly(j,2)))) && ...
(p(i,1) < (poly(j-1,1) - poly(j,1)) * (p(i,2) - poly(j,2))/(poly(j-1,2)-poly(j,2)) + poly(j,1)))
flags(i) = flags(i) + 1;
end
end
end
flags = mod(flags,2);
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/a_star/pathPlanning4m.git
git@gitee.com:a_star/pathPlanning4m.git
a_star
pathPlanning4m
pathPlanning4m
master

搜索帮助