MATLAB Answers

How can I find the intersection face between a line and a 3D mesh of trianlges?

37 views (last 30 days)
Hello everyone,
I have a triangulated patch of a 3D object. I have the matrixes with all the vertixes and faces of my mesh.
Setting a line in the 3D space I would like to obtain the index of which face does my line intersect.
To be more specific:
Using the function Triangle/Ray Intersection (https://ch.mathworks.com/matlabcentral/fileexchange/33073-triangle-ray-intersection) I defined a ray normal to one of my traingles on the mesh. This ray is then intersecting my 3D object in a second triangle. I need to know which triangle is it in my matrix of faces 'f', in order to then compute the thickness of my object as distance of the two faces.
Thank you for any help,
I hope it is clear.

Accepted Answer

Abhisek Pradhan
Abhisek Pradhan on 17 Nov 2020
  1 Comment
Emile Talon
Emile Talon on 17 Nov 2020
Thanks for your help, I had seen that question.
At the end I managed to solve my problem, using the function Triangle/Ray Intersection cited above twice: once to originate the rays and a second time in a loop. This loop allows me to go traingle by triangle and see where Intersection ==1.
This is computationally quite heavy (5mins for more or less 800.000 triangles), probably there is a more efficient way that involves the use of the cited function only once.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!