How can I find the set of vertices of hexagons which are adjacent to a random point?
57 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Aravind Varma Dantuluri
el 10 de Ag. de 2024 a las 7:07
Comentada: Aravind Varma Dantuluri
el 13 de Ag. de 2024 a las 2:19
I have a set of hexagons whose blue coordinates are known:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1750334/image.png)
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 comentario
Respuesta aceptada
Matt J
el 13 de Ag. de 2024 a las 0:53
Editada: Matt J
el 13 de Ag. de 2024 a las 1:51
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
Más respuestas (1)
Mario Malic
el 10 de Ag. de 2024 a las 11:04
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 comentarios
Mario Malic
el 12 de Ag. de 2024 a las 19:37
That random point is just an example, it can be arbitrary!
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!