How to create a perimeter from x,y coordinates
조회 수: 5 (최근 30일)
이전 댓글 표시
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
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/171418/image.jpeg)
댓글 수: 0
답변 (1개)
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
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.
참고 항목
카테고리
Help Center 및 File Exchange에서 Computational Geometry에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!