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])

 Accepted Answer

4 Comments

Hi @Bruno Luong! Thanks for the link. How can I create the mesh of my plane?
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)

Sign in to comment.

More Answers (0)

Products

Release

R2021b

Community Treasure Hunt

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

Start Hunting!