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

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

采纳的回答

Bruno Luong
Bruno Luong 2023-9-26
编辑:Bruno Luong 2023-9-26
  4 个评论
Alberto Acri
Alberto Acri 2023-9-26
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)

请先登录,再进行评论。

更多回答(0 个)

类别

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

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by