如果我在matlab中的图形中有点被随机排序并且在绘制时产生各种闭合形状。给定其中一个封闭形状左侧的特定点,如何以矢量形式获取该形状的所有点,同时记住收集点的惯例是顺时针方向移动。
答案 0 :(得分:1)
一个评论的例子:
cla
% Random data
x = rand(15,1);
y = rand(15,1);
scatter(x,y)
% Random point to the left
hold on
p = [-0.1, rand(1)*0.2 + 0.5];
plot(p(1),p(2),'*r')
% Separate points that lie above your point
idx = y >= p(2);
% Sort x then y increasing for upper half and x then y decreasing for lower half
shape = [sortrows([x( idx) y( idx)],[1 2])
sortrows([x(~idx) y(~idx)],[-1 -2])];
通过绘制一条开放的线来检查shape
是否包含顺时针排序的坐标:
% Plot clockwise open line
plot(shape(1:end ,1),shape(1:end,2),'k')