Order List of Neighbors In Counter Clockwise Fashion

5 ビュー (過去 30 日間)
shan siddiqui
shan siddiqui 2021 年 3 月 3 日
回答済み: darova 2021 年 3 月 3 日
Hello,
I am trying to generate the natural neighbors of all points in my data set here I have what I am currently doing for one point.
for i=1:3
for j=1:nt
if t(j,i)==5
nn(j,:)=t(j,:);
end
end
end
nn = nn(any(nn,2),:);
nn = unique(nn);
nn = nn(find(nn~=5));
Where t is the delaunay triangulation which is essentially acting as a connectivity list.
This yields the natural neighbors of point number 5 in the data set which I just picked 5 arbitrarily. What I would like is for it to order the coordinates in a counter clockwise manner going around point 5. Like this image:
From there I can compute this same thing for all data sites. Is there also a better way to compute this without the nested for loops I am running to search the Delaunay triangulation?
Thanks

採用された回答

darova
darova 2021 年 3 月 3 日
Yes, there is one! Look, just get angle of each point and sort it
clc,clear
r = 2+rand(20,1);
t = rand(20,1)*2*pi;
[x,y] = pol2cart(t,r);
[~,ix] = sort(t);
plot(x(ix),y(ix),'.-r')
line(x,y)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDelaunay Triangulation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by