Calcul des couleurs
Une fois que l'on sait où tracer les triangles il faut les colorier. Pour cela j'utilise deux facteurs : la hauteur relative du triangle et son orientation vis-à-vis du soleil. Pour l'altitude j'ai choisi d'avoir des triangles verts en bas et blancs au sommet. Pour l'ombre, il suffit d'assombrir un triangle quand il n'est pas exposé de face au soleil. Il y a plusieurs possibilités pour définir une couleur, ici j'utilise les composantes RGB (Red, Green, Blue) qui ont chacune des valeurs entre 0 et 255, donc le triplet (0, 0, 0) correspond au noir, (255, 255, 255) au blanc et (0, 255, 0) au vert.
Voici la formule :

(ombre*altitude*255, ombre*255, ombre*altitude*255)

les variables ombre et altitude ont des valeurs décimales comprises entre 0 et 1. Pour l'atitude, 0 correspond au point le plus bas et 1 au sommet et pour l'ombre, 0 sera attribué à une face éclairée de profile ou de dos alors que 1 correspond à un triangle qui fait face au soleil.
En théorie on devrait obtenir une palette continue de couleurs mais la bibliothèque graphique utilisée n'a qu'un nombre limité de couleurs et donc la palette est moins riche comme le montre les deux images ci-dessous:

degrade degrade
Palettes théorique et discrète des couleurs
Horizontalement l'altitude croissante et verticalement l'ombrage
Valid XHTML 1.0! Valid CSS!
Pour les utilisateurs d'Internet Explorer 6 suivez ce lien.