필터 지우기
필터 지우기

How to create a perimeter from x,y coordinates

조회 수: 5 (최근 30일)
Alex castilla
Alex castilla 2018년 3월 20일
댓글: Alex castilla 2018년 3월 22일
Hello everybody,
I have a small question:
I have two matrices: A(2099x2) and B(9x4).
Matrix A = trajectory (x,y)
Matrix B = X,Y position of 9 (black square dots), the width=0.20 and the height= 0.20.
I would like to know how to create a perimeter around of the black square dots (green square) and calculate if the trajectory (blue line) enter in this perimeter. Thanks in advance

답변 (1개)

Guillaume
Guillaume 2018년 3월 20일
The easiest way, assuming R2017b or later, is to use the intersect method of the polyshape object, which you can construct either by providing the 4 corners of your perimeter or with nsidedpoly:
perimeterside = 0.2;
for blackdotidx = 1:size(B, 1) %iterate over the black dots
perimeter = nsidedpoly(4, 'Center', A(blackdotidx, :), 'SideLength', perimeterside);
if ~isempty(intersect(perimeter, A))
%1st output of intersect is segments inside the perimeter, so if not empty there is intersection
fprintf('trajectory intersect perimeter %d\n', blackdotidx);
end
end
  댓글 수: 5
Guillaume
Guillaume 2018년 3월 22일
Matlab online is always on the last version. The code I wrote does not require any particular toolbox so is guaranteed to work with matlab online.
I understood very well what you want to do, my answer does just that.
Alex castilla
Alex castilla 2018년 3월 22일
Thanks again Guillaume, I will use your code. How can I store the results in a vector?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Computational Geometry에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by