Appel defined contour line as an edge shared by a front-facing and a back-facing polygon, or unshared edge of a front facing polygon that is not part of a closed polyhedron. An edge shared by two front-facing polygons causes no change in visibility and therefore is not a contour line. In Fig. 8.4, edges AB, EF, PC, GK and CH are contour lines, whereas edges ED, DC and GI are not.
I understand the rules of the algorithm and how it works once you have your contour lines, however I do not understand is what I need to do to determine if a edge is “shared by a front-facing and a back-facing polygon, or unshared edge of a front facing polygon that is not part of a closed polyhedron” from a coding point of view. I can look at a shape and I can know what lines are contour lines in my head but I don’t have a clue on how to transfer that “understanding” in to a coded algorithm.
Update
I have made some progress in determining contour lines. I found these two lecture notes from a University of Buffalo class on computer graphics.
Consider the edges. These fall into three categories.
- An edge joining two invisible faces is itself invisible. This will be deleted from the list and ignored.
- An edge joining two potentially-visible faces is called a ‘material edge’ and will require further processing.
- An edge joining a potentially-visible face and an invisible face is a special case of a ‘material edge’ and is also called a ‘contour edge’.
Using the above two pieces of information I am able to get closer to being able to write this out as code, but I still have a long way to go.
Asked By : Scott Chamberlain
Answered By : Yves Daoust
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/3139