naughton@sun.soe.clarkson.edu (Patrick Naughton) (04/14/88)
Problem:
Given a polygon defined in three-space with three or more co-planar
vertices create a list of triangles which don't overlap and yet cover
the entire surface of the original n-agon.
Fact: The number of triangles, t generated by an n-agon is [n-2;n>=3].
This may seem trivial...
My first attempt was this:
Given a polygon with vertices v[0]...v[n-1]:
j = [2..n-1]
a triangle is <v[0],v[j-1],v[j]>
This will work iff the vertices are numbered in order reading clockwise
or counterclockwise around the polygon.
For example:
Correct Incorrect
v0----v1 v0----v1
|\ | |\ /
| \ | | \/
| \ | | /\
| \ | |/ \
v3----v2 v2----v3
This problem obviously compounds when the number of vertices increases.
I know that this has been done... SunCore handles it internally...
If anyone can suggest a reference to this and other related problems
such as how to resolve which polygon should be drawn first in a Z-buffer
sort when the vertices overlap in the Z dimension... I'd be highly
thankful...
For the curious, I'm doing Gouraud/Phong shading under X11 and I've written
the shading routines to deal with triangles and I now see that most 3d
poly data is in n-agon format... sigh...
-Patrick ___________________________________________
| |
| Internet: naughton@sun.soe.clarkson.edu |
| BITNET: naughton@CLUTX.BITNET |
| uucp: {rpics, gould}!clutx!naughton |
|___________________________________________|
Soon to be naughton@sun.com (6/1/88)