The problem of finding intersection point of triangle mesh

조회 수: 4 (최근 30일)
Vivaldi
Vivaldi 2019년 11월 21일
댓글: Vivaldi 2019년 11월 25일
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
darova
darova 2019년 11월 21일
What about in-built function such as polyxpoly?
Vivaldi
Vivaldi 2019년 11월 24일
Thanks for your answer. But I dont know how this function should I use. Cloud you write a function?Sorry to bother you.

댓글을 달려면 로그인하십시오.

채택된 답변

darova
darova 2019년 11월 24일
편집: darova 2019년 11월 24일
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
Vivaldi
Vivaldi 2019년 11월 25일
Its so cool! Thanks for your answer . Wishing your life delectation!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2014b

Community Treasure Hunt

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

Start Hunting!

Translated by