How can I find the set of vertices of hexagons which are adjacent to a random point?
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
    Aravind Varma Dantuluri
 le 10 Août 2024
  
    
    
    
    
    Commenté : Aravind Varma Dantuluri
 le 13 Août 2024
            I have a set of hexagons whose blue coordinates are known:

I have a random red point and I need to know the 4 (in some cases it would be 3) points which are immediately adjacent to it. These points are contained in the black box shown for illustration.
I tried to sort the blue points by measuring distances but I keep getting extra points (shown by black arrows) or missing the required points.
1 commentaire
Réponse acceptée
  Matt J
      
      
 le 13 Août 2024
        
      Modifié(e) : Matt J
      
      
 le 13 Août 2024
  
      hex=[         0   -1.0000
   -0.8660   -0.5000
   -0.8660    0.5000
         0    1.0000
    0.8660    0.5000
    0.8660   -0.5000
    1.7321   -1.0000
    0.8660   -0.5000
    0.8660    0.5000
    1.7321    1.0000
    2.5981    0.5000
    2.5981   -0.5000
    3.4641   -1.0000
    2.5981   -0.5000
    2.5981    0.5000
    3.4641    1.0000
    4.3301    0.5000
    4.3301   -0.5000]  %hexagon points
hex=unique(hex,'rows');
given=[1.2,-1];
pts=[given;hex];
DT=delaunayTriangulation(pts);
CL=DT.ConnectivityList;
idx=any(CL==1,2);
idx=setdiff(CL(idx,:),1);
nearest=pts(idx,:)
plot(hex(:,1),hex(:,2),'x', nearest(:,1),nearest(:,2),'o',given(:,1),given(:,2),'s'); 
legend Vertices Nearest Given
axis equal padded
Plus de réponses (1)
  Mario Malic
      
 le 10 Août 2024
        Hi,
here's some code to give you an idea
X = rand(3,3);
Y = rand(3,3);
pts = [X(:), Y(:)];
distance = squareform(pdist(pts)); % symmetric matrix that contains distances between points
% distance between pt3 and all other pts
[~, idx] = sort(distance(:, 3));
closestPts = idx(2:5) % first one is distance between pt3 and pt3 so we ignore that
2 commentaires
Voir également
Catégories
				En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




