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

50 次查看(过去 30 天)
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.

采纳的回答

Abhisek Pradhan
Abhisek Pradhan 2020-11-17
  1 个评论
Emile Talon
Emile Talon 2020-11-17
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.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by