The objects of your universe are closed segments of positive length, closed half lines, and full lines in the plane, in short: closed one-dimensional convex sets in ${\mathbb R}^2$. Denote the set of these objects by ${\cal O}$. The intersection of two such objects is one of the following: empty, a single point, or again an element of ${\cal O}$.
Any $S\in{\cal O}$ can be extended to a full line $\ell_S$, the carrier line of $S$, and has a direction which can be represented by a unit vector ${\bf u}_S$, whereby ${\bf u}_S$ is determined only up to a factor $\pm1$.
Given two objects $S_1$, $S_2\in{\cal O}$, let $\ell_i$ be their carrier lines and ${\bf u}_i$ their directions. At the top level we then have the following three cases:
(a) $\quad {\bf u}_1\ne\pm {\bf u}_2\>$,
(b) $\quad {\bf u}_1=\pm {\bf u}_2\>,\ $ but $\ \ell_1\ne\ell_2$
(c) $\quad \ell_1=\ell_2\>$.
In case $(a)$ the two carrier lines intersect in a single point ${\bf p}$, and we have to test whether ${\bf p}\in S_1\cap S_2$. The exact form of this test depends on the way the objects are presented.
In case (b) the two carrier lines are parallel and disjoint, hence $S_1\cap S_2$ is empty.
In case (c) the common carrier line $\ell$ has a representation of the form
$$\ell:\quad t\mapsto{\bf p}+t{\bf u}\qquad(-\infty<t<\infty)\ .$$
The sets $J_i:=\ell^{-1}(S_i)$ are then closed intervals of ${\mathbb R}$, and it remains to find the intersection of these intervals.
There is absolutely nothing fuzzy, or even illogical, in this story.
Here's one way to do it:
Step 1: Determine the planes determined by the two triangles.
Step 2a: If they are the same plane, this has become a two dimensional problem.
Step 2b: If the planes are different there are many options.
Step 3: The vertices of triangle 1 cannot all be on the same side of the plane determined by triangle 2. Similarly, the vertices of triangle 2 cannot be on the same side of the plane determined by triangle 1. If either of these happen, the triangles do not intersect.
Step 4: Consider the line of intersection of the two planes. This line intersects both triangles by step 3. Now, compute the intersection (a two dimensional problem, the intersection is a segment determined by the intersection of the intersection of the line with the lines determined by the edges of the triangles.
Step 5: Determine if the segments (which are on the same line) intersect.
Best Answer
Yes, that solution would work! And I think it is quite clever.
One observes that a line $ax + by + c = 0$ in the plane defines two semi-planes: the points $(\overline{x}, \overline{y})$such that $a\overline{x} + b\overline{y} + c > 0$ and those for which $a\overline{x} + b\overline{y} + c < 0$.
The algorithm works because by substituting the coordinates of the vertices one finds in which semi-plane they lie. If some vertices lie in the upper semi-plane and some in the lower semi-plane then we must conclude that the line does intersect the polygon.