0

I have a volume mesh which is actually a tetrahedral mesh. I would like to calculate the cross-section of this mesh given a plane function, saying z = 0. I can imagine that the cross section of a tetrahedron is either a triangle or a quadrilateral. For the first case, triangle, once I calculate the 3 cross points I can get it; but for the second case, how can I make the quadrilateral become 2 triangles? My problem is I cannot determine the diagonal of the quadrilateral.

C. Wang
  • 2,466
  • 4
  • 28
  • 39

2 Answers2

0

Intersect all tetrahedron edges by the plane. You will get 3 or 4 intersection points.

If 3 points then a single triangle.

If 4 points, they form a convex quadrilateral. Take any 3 points, that form a first triangle. The other triangle if formed of the fourth point and the two endpoints of the edge that has this point to its right.

Alternatively (for a more general solution), tag the intersection points with the indexes of the faces incident on the edge, and reconstruct the ring of labels.

Ex: edges are common to faces AB, CD, DA and BC; then the section is ABCD.

Yves Daoust
  • 53,540
  • 8
  • 41
  • 94
0

This answer outlines a general volume-plane intersection algorithm. It will return the vertices of the intersection in order, so it's easy to determine the diagonal of your quadrilateral.

Community
  • 1
  • 1
ryanm
  • 2,869
  • 18
  • 21