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.
Probability
|
Event
|
0.10
|
Continue straight for the same distance as before
|
0.70
|
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
|
.10
|
The tunnel splits in two by generating two different vectors in the same way as the change of direction table above
|
.10
|
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.