MATLAB Answers

The problem of finding intersection point of triangle mesh

14 views (last 30 days)
Vivaldi
Vivaldi on 21 Nov 2019
Commented: Vivaldi on 25 Nov 2019
Now I have drawn a triangle mesh. (The function to generate image I use are as follows. )I want to ask for the intersection point, as shown in the figure(Red line with the mesh). But I don't know how to solve it.
PS:You can define the expression of a line at will,like "x=5".
If you want, I have some expression here.
Inked LI.jpg
In.jpg
trimesh(face', vertex(1,:), vertex(2,:), vertex(3,:),'LineWidth',1,'EdgeColor','k');
hold off;
vertex0=vertex';
V=vertex0(:,1:2);
x1=V(:,1);
y1=V(:,2);
z1=repmat(-20,1380,1);
tr = triangulation(face',x1,y1,z1); %x1.y1.z1 is a set of three coordinates of vertices
trimesh(tr);
axis equal;
colorbar('vert');
brighten(-0.1);axis on; % 'face' is the index list of triangle patch vertices;'vertex' is the index list of triangle vertex coordinates.

  2 Comments

Vivaldi
Vivaldi on 24 Nov 2019
Thanks for your answer. But I dont know how this function should I use. Cloud you write a function?Sorry to bother you.

Sign in to comment.

Accepted Answer

darova
darova on 24 Nov 2019
Edited: darova on 24 Nov 2019
To check every edge:
for j = 1:size(face,2)
i1 = 1;
for i2 = [2 3 1]
% checking edges [1 2], [2 3], [3 1]
xx = [V(face(i2,j),1) V(face(i1,j),1)];
yy = [V(face(i2,j),2) V(face(i1,j),2)];
% intersection of edge and line x = [20 -150], y = [-40 -40]
[xc,yc] = polyxpoly(xx,yy,[20 -150],[-40 -40]);
i1 = i1+1;
% if intersection exists
if ~isempty(xc)
plot(xc,yc,'.r')
end
end
end

  1 Comment

Vivaldi
Vivaldi on 25 Nov 2019
Its so cool! Thanks for your answer . Wishing your life delectation!

Sign in to comment.

More Answers (0)

Sign in to answer this question.