Using your mountain project source code as a starting point, you are to write a code that randomly chooses one of the triangles on the surface of your mountain, this will be the entrance to your cave. A line segment representing that tunnel beginning at the centroid of that triangle travels a distance equal to the average of the three sides of that triangle in the direction normal to that surface INTO the mountain. You should store this segment as a vector beginning at the centroid in the form v = Xmi + y+ Zmk . These Xm, ym, and Zm values will be referenced many times. At this point what happens is determined by the following table.
Continue straight for the same distance as before
Tunnel changes direction by generating a new random vector direction such that when
v=ai + bj + ck
-Xm < a< Xm
-Ym < b < Ym
-Zm < C < Zm
The tunnel splits in two by generating two different vectors in the same way as the change of direction table above
Current tunnel branch terminates
As the tunnel splits then there is an additional branch that must be explored. If at any time a branch of the tunnel intersects the surface of your mountain that branch should terminate (hint: consider the 2-d projection of your triangles as seen from above).
Save your tunnel system as a set of line segments in a separate data file then plot them with your mountain. They should automatically appear as a different color.