Determine the intersection coordinates between a 3D object and an infinite plane

Hi! I would like to know if there is a way to determine the intersection coordinates between a reported 3D geometry (tube) and an infinite plane. That is, determine the coordinates where the red line is in the image.
NODES = importdata("NODES.mat");
FACES = importdata("FACES.mat");
P = [24.3377 -21.8635 81.9835];
plane = [0.1385 0.0645 0.9883];
a = plane(1);
b = plane(2);
c = plane(3);
d = dot(plane,P);
figure
plot3(P(:,1),P(:,2),P(:,3),'k.','Markersize',20);
hold on
% plot3(NODES(:,1),NODES(:,2),NODES(:,3),'b.','Markersize',3)
trimesh(FACES(:,:),NODES(:,1),NODES(:,2),NODES(:,3),'EdgeColor','k','Linewidth',0.1,'Facecolor','b','FaceAlpha',.4)
f_1 = fimplicit3(@(x,y,z) a*x+b*y+z*c-d);
hold off
axis equal
zlim([70 90])

 Respuesta aceptada

Bruno Luong
Bruno Luong el 26 de Sept. de 2023
Editada: Bruno Luong el 26 de Sept. de 2023

4 comentarios

Hi @Bruno Luong! Thanks for the link. How can I create the mesh of my plane?
Bruno Luong
Bruno Luong el 26 de Sept. de 2023
Editada: Bruno Luong el 26 de Sept. de 2023
Similar to Matt's answer to another thread from you, just replace circle by square
Yes, using the code that Matt J provided me I created a mesh of the circle (the circle is also fine as geometry).
To use the code in the link I would need the nodes and faces of the circle. I have the nodes (the V matrix). How can I recover the faces?
load V
V=num2cell(V,1);
[x,y,z]=deal(V{:});
trisurf(delaunay(x,y), x,y,z)

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2021b

Preguntada:

el 26 de Sept. de 2023

Comentada:

el 26 de Sept. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by