Преобразовать polyhape в набор координат массива - PullRequest
1 голос
/ 14 июля 2020

I wi sh, чтобы найти кратчайшее расстояние между точкой и polyshape с помощью функции distancepointpolygon из библиотеки Matlab geom2d . Функция distancepointpolygon делает это для многоугольника, и поэтому как я могу преобразовать любой polyshape в массив размером N на 2, содержащий координаты вершины? Я делал это вручную и ищу общее решение.

polySquare = polyshape([0 5 5 0], [10 10 15 15]);
plot(polySquare)
square = [0 10; 5 10; 5 15; 0 15];
p0 = [5 10];
distancePointPolygon(p0, square)  

1 Ответ

3 голосов
/ 14 июля 2020

polySquare.Vertices должно быть нужной матрицей:

>> polySquare = polyshape([0 5 5 0],[10 10 15 15]);
>> polySquare.Vertices

ans =

     0    10
     0    15
     5    15
     5    10

Таким образом, вы можете сделать:

polySquare = polyshape([0 5 5 0], [10 10 15 15]);
plot(polySquare)
square = polySquare.Vertices;
p0 = [5 10];
distancePointPolygon(p0, square)

См. документацию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...