【问题标题】:To find number of points inside a irregular shape查找不规则形状内的点数
【发布时间】:2015-07-16 04:35:01
【问题描述】:

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

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

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');

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

【问题讨论】:

  • 你的密码是什么?你尝试了什么?

标签: matlab geometry polygon computational-geometry


【解决方案1】:

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

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

【讨论】:

  • 在正方形网格中没有给出点,因为我提供了 X 和 Y 的最大值以及 X 和 Y 的最小值。在正方形中分布的点中,我需要找到里面的点那个不规则的结构。边界是指那个不规则形状的多边形内部。
  • @thomas 你如何定义你的不规则边界?你能指定xy它的角坐标吗?另外,您是否阅读过inpolygon 的链接文档,那里有一个示例几乎可以满足您的需要。
  • 是的,我正在定义该边界的坐标。XX 和 final_y' 正在定义其坐标,如果您正在绘制该坐标,您将获得我指定的边界。
  • @thomas 在这种情况下,您需要向inpolygon 提供边界坐标 - 请参阅我的编辑。
  • 感谢您的宝贵信息,如果我需要在该多边形内生成固定数量的点,我需要添加哪些修改?
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 2017-11-02
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多