How select data just out from a polygon, considering a constraint

2 ビュー (過去 30 日間)
Francesco Porretta
Francesco Porretta 2021 年 9 月 13 日
編集済み: Matt J 2021 年 9 月 13 日
borders % matrix 20x2 with the x and y coordinates of the generic polygon perimeter
datas % matrix 550x2 containing the x and y coordinates of all my datas
Using the function "inpolygon" I'm able to find all the points of "datas" that are inside the polygon perimeter defined by "borders".
However, I also want to take into account all the points that are outside the polygon and near the perimeter.
More precisely, I want to consider all the points outside the polygon for which the distance in x is lower than 0.3 and the distance in y is lower than 0.1, with respect to the border.
Hoping to be clear, thanks for help!

採用された回答

Matt J
Matt J 2021 年 9 月 13 日
編集済み: Matt J 2021 年 9 月 13 日
borders=[0,0;0,1;1 1;1 0];
p=polyshape(borders);
p=blurHull(p,[0.3,0]);
p=blurHull(p,[0, 0.1]);
isinterior(p,datas)
function ps=blurHull(p,v)
N=100;
t=linspace(-1,1,N).'*v;
ps=p;
for i=1:size(t,1)
ps=union(ps,translate(p,t(i,:)));
end
d=2/N;
ps=polybuffer(ps,d,'JointType','square');
ps=polybuffer(ps,-d,'JointType','square');
end

その他の回答 (1 件)

KSSV
KSSV 2021 年 9 月 13 日
Read about knnsearch. This will give you indices of points lying closer to the given set of points from a set of points along with distances. You can play around with distances obtained from here.

カテゴリ

Help Center および File ExchangeElementary Polygons についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by