How to determine if a 3D line segment intersects a side of a 3D rectangular prism?

14 visualizaciones (últimos 30 días)
Hello,
I am trying to find a way to determine if a line segment drawn between two points in 3D space will intersect another 3D body (retangular prism) that is defined by regions using (x, y, z) vertices.
Is there a way to do this in Matlab?

Respuesta aceptada

Matt J
Matt J el 28 de Sept. de 2022
Editada: Matt J el 28 de Sept. de 2022
  2 comentarios
MS
MS el 28 de Sept. de 2022
Hi Matt,
Thanks for your suggestion. So in this case, V holds the vertices of the rectangular prism and Aeq holds the (x,y,z) values for the two endpoints of the line segment? What is the role of beq? I noticed in the 'lcon2vert' function, beq is referred to as equality data.
Matt J
Matt J el 28 de Sept. de 2022
Editada: Matt J el 28 de Sept. de 2022
No, you can specify both the line segment and the prism in terms of vertices if you wish, for example,
Vprism=dec2bin(0:2^3-1,2)-'0'+1 %vertices of prism
Vline=[0,0,0;3 3 3]; %vertices of line segment
I=intersectionHull('vert',Vprism,'vert',Vline); %compute intersection
>> I.vert
ans =
1.0000 1.0000 1.0000
2.0000 2.0000 2.0000

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 29 de Sept. de 2022
You can also use Siddon's algorithm
which will compute the intersection between a ray and many prisms.

Categorías

Más información sobre Delaunay Triangulation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by