Source: http://math.et.info.free.fr/TikZ/bdd/TikZ-Impatient.pdf