Joined: 11/30/2008
Posts: 650
Location: a little city in the middle of nowhere
I think the definition of a triangle is that it must have three points connected with line segments. In a triangle with side lengths 0, these line segments are undefined, therefore that is not a triangle.
I disagree with Warp though. Any three non-colinear points determines a triangle, and a plane, however, I don't think that a triangle is necassarily defined by three non-colinear points.
EDIT: corrected a mistake, where I directly contradicted myself.
zero-length line segments are very well defined. Lines are usually defined as a set of points, and a set with only one point can be a valid line. For example, any line can be expressed as the set of points satisfying this formula:
v1 + t*v2 with v1, v2 being vectors and 0 <= t <= 1
For a zero-length line segment, v2 is the null vector. Works like a charm.
As said, that's a matter of definition.
In computer graphics, you have to deal with collinear triangles. The user could input some, they could be generated by several triangulation algorithms, they can unexpectedly show up as a result of transformations etc. Most of all, they can be generated when transforming 3d triangles to 2d screen coordinates in any 3d game or application.
In mathematics, there are cases where you want your triangles to be non-collinear (when you need the orientation or normal vector) and there are cases where you don't care (when you're dealing with non-convex polygons anyway).
Use the definition that suits your use and be vary of the consequences.
Except that the mathematical definition of line segment requires for v2 to be non-zero. See for example http://planetmath.org/encyclopedia/LineSegment.html
(It makes sense because allowing v2 to be zero would make lines and line segments unusable for most geometry proofs.)