将 polyshape 转换为一组坐标数组
Convert polyshape to set of coordinates array
我希望使用 Matlab geom2d
library 中的 distancepointpolygon
函数找到点与 polyshape
之间的最短距离。
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)
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)
我希望使用 Matlab geom2d
library 中的 distancepointpolygon
函数找到点与 polyshape
之间的最短距离。
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)
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)