如何自动判断点在2 d广场属于相应的部分

2视图(30天)
我介绍两个截止点(x1, y1)和B (x2, y2),形成一个线性方程将一个二维方形(WB)分为两部分(即wb1和wb2型)。下面的图和代码了。(WB(1)我是世行的X坐标,WB(我,2)是Y coord WB)
%介绍两个截止目前节庆A和B
x1 = 390407.303;%一个x-coord
日元= 7130001.528;%一个y-coord
x2 = 392029.915;% B x-coord
y2 = 7132298.454;% B x-coord
%获得线性方程的系数
系数= polyfit ((x1, x2), (y1, y2), 1);
一个=系数(1);
b =系数(2);
%定义行wb1和wb2型
r_wb =大小(WB, 1);
%如果L < 0,属于wb1浪费块
wb1 = 0 (r_wb c);
%如果L > 0,浪费块属于wb2型
wb2型= 0 (r_wb c);
[m_WB, n_WB] =大小(WB);%读取矩阵的值
%使用for循环来判断
我= 1:m_WB
如果(a * WB(我,1)- b + WB(我,2))< 0
wb2型(我:)= WB(我:);
其他的
wb1(我:)= WB(我:);
结束
结束
因此,上面的代码激发我思考如何自动判断点属于相应的部分,因为广场将分为N + 1部分如果有N线性方程(N = 1, 2, 3,…),就像下面的图片显示了
例如,有4部分S1、S2、S3、S4的广场,和8点(x1, y1) ....(×8,日元),所以有任何解决方案来自动确定这些8点位于相应的部分,就像使用For循环?金宝搏官方网站
许多提前感谢你的帮助!

接受的答案

为副总经理
为副总经理 2021年7月5日
编辑:为副总经理 2021年7月5日
这是在那个方向。可能有规范的方法来做这个,但我不熟悉。而不是建立一个稀疏点列表,这只是生成一套面具,描述是否查询点左边的每一行。进一步确定点在哪里,只需计算的逻辑组合面具,然后使用结果数组内的逻辑索引查询点。有多复杂,完全取决于我们如何有序可以预计分界线(如它们是平行的,或可以相交的分界线在ROI ?)
%查询点
M =兰德(10,2);
%分界线[(x1, y1;x2 y2)
%将东西放入数组,这样您就可以指数
cp1 = [0 0;0.5 - 1];
cp2 = (0.5 0;1 1];
CP =猫(3 cp1 cp2);
%建立面具
在线=大小(CP, 3);
leftof = false(大小(M, 1)、在线);
c = 1:在线
cf = polyfit (CP (: 1 c), CP (:, 2, c), 1);
leftof (:, c) = M (:, 2) > = (cf (1) * M (: 1) + cf (2));
结束
%的各个列向量描述点米在CP关于每一行
leftof
leftof =10×2逻辑数组
0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1)
%进行复核通过绘制
c = 1:在线
次要情节(在线1 c)
情节(CP (: 1 c), CP (:, 2, c));持有
情节(M (leftof (: c), 1), M (leftof (: c), 2),“软”);
情节(M (~ leftof (: c), 1), M (~ leftof (: c), 2),“波”);
结束
%对于这个特定的例子,我们知道cp1完全cp2的左边
%如果你想组点的区域,你可以这样做
leftpoints = M (leftof (: 1):)
leftpoints = 3×2
0.0080 0.6564 0.1502 0.3019 0.0588 0.7605
middlepoints = M ((~ leftof (: 1) & leftof (:, 2)),:)
middlepoints = 6×2
0.6780 0.6359 0.4443 0.6790 0.4481 0.0251 0.7133 0.8264 0.6502 0.6506 0.4994 0.6321
rightpoints = M (~ leftof (:, 2):)
rightpoints = 1×2
0.6555 - 0.2687
在其他情况下,您将不得不找出行是关于彼此,算出所需的逻辑组合的点。
5个评论
为副总经理
为副总经理 2021年8月10日
只要线不相交,你可以通过逻辑运算leftof向量描述。将需要知道线的相对位置,所以它可能是好来确定他们的订单(如从左到右),然后在生成任何面具。
所以我想这个想法会开始直线端点
  1. 确保他们不会相交
  2. 按照从左到右的顺序排序
  3. 集团分在一个循环中,从最左边的组和正常工作
适合线相交的情况是一个额外的并发症。

登录置评。

更多的答案(0)

类别

找到更多的在描述性统计帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!