我希望使用Matlabgeom2d
库中的distancepointpolygon
函数来找到点和polyshape
之间的最短距离。distancepointpolygon
函数用于多边形,因此如何将任何polyshape
转换为包含顶点坐标的N-by-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)
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)
请参阅文档。