查找不规则形状内的点数

To find number of points inside a irregular shape

我需要找出我在两层蜂窝网络的六边形边界内随机生成的点数。边界是不规则形状。

我将展示我的代码示例,它不是完整代码:

final_y = [750 500 250 0 -250 -500 -750 -750 -1000 -1000 -1250 -1250  -1000 -1000 -750 -750 -500 -250 0 250 500 750 750 1000 1000 1250 1250 1000 1000 750 750]
 final_y1 = final_y'
XX =[1010;1155;1010;1155;1010;1155;1010;721.7;577.4;288.7;144.3;-144.3;-288.7;-577.4;-721.7;-1010;-1155;-1010;-1155;-1010;-1155;-1010;-721.7;-577.4;-288.7;-144.3;144.3;288.7;577.4;721.7;1010]

boundary = mx_min+(mx_max-mx_min)*rand(1,100);
boundary2 = my_min+(my_max-my_min)*rand(1,100);
figure(2)
plot(XX,final_y1)
hold on
%plot(boundary,boundary2,'or')
hold on
xv = [mx_max mx_min];
yv = [my_max my_min];
[in,on] = inpolygon(boundary,boundary2,xv,yv);
hold on
plot(boundary,boundary2,'bo',xv,yv,'ro');

我需要找到该边界内的点数。

正如您已经注意到的,inpolygon 函数确定每个点是在给定多边形的内部还是外部。您现在要做的就是计算指标向量中 true 个条目的数量:

[in,on] = inpolygon(boundary, boundary2, XX, final_y);
numPointsIn = sum( in );
numPointsOn = sum( on );