Problem 45257. Find neighbor triangle indices
First input T is a triangulation (triplet list of indices -positive integers-, each index refering to a vertex number in a corresponding vertices list).
Given a second input t (a certain triangle row index), one would like to query the list L of all its triangle neighbor indices. A triangle is neighbor to another triangle if they share exactly one edge.
For instance if
T = [1 2 4;... 2 3 4;... 5 6 8;... 6 7 8;... 1 2 5;... 2 5 6;... 2 3 6;... 3 6 7;... 3 4 7;... 4 7 8;... 4 1 8;... 1 8 5]
and t = 3, then the function should return
L = [4, 6, 12]'
since rows / (triangles of T) 4, 6, and 12 contain an edge in common with triangle / row 3.edge [6 8] for the first, edge [5 6] for the second, and edge [8 5] for the third.
Hypothesis :
- Since a triangle is not considered neighbor of itself, t should not be part of L.
- Order doesn't matter, but T must be a column vector containing all the neighbor triangle -row- indices (except itself then) once only. No duplicata is admitted.
- Edges are symmetric : [e1, e2] is the same edge as [e2, e1]
- Every indices are positive, distinct integers.
Solution Stats
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers16
Suggested Problems
-
Create a cell array out of a struct
1829 Solvers
-
Project Euler: Problem 4, Palindromic numbers
1041 Solvers
-
How long do each of the stages of the rocket take to burn?
301 Solvers
-
Rule of mixtures (composites) - either bound
63 Solvers
-
869 Solvers
More from this Author9
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!