Devinette
Qu'est-ce ?
Hé bien, ce sont toutes trois le niveau zéro discrétisé d'une
fonction bien simple...
Plus explicitement: définissez une fonction f sur le plan, et cherchez à
afficher son niveau 0 (c'est-à-dire créer une image initialement noire où
on colorie en blanc les pixels où la fonction s'annule). Évidemment, vous
ne pouvez pas vous contentez de colorier en blanc les pixels où la fonction
est exactement nulle (il faut en général beaucoup de chances pour que les
coordonnés d'un tel point soient entières...). Vous vous restreignez donc
au début à colorier les pixels où la fonction est comprise entre -epsilon
et +epsilon, pour un epsilon arbitrairement choisi. Puis vous trouvez votre
oeuvre pas terrible, parce qu'il faut adapter le epsilon à la fonction, et
que de temps en temps il manque des morceaux de courbe ou au contraire le
niveau est affiché sur plusieurs pixels de large. Vous n'avez pas l'idée de
prendre une grille duale et de sélectionner les pixels par les changements
de signe à ses quatre coins. Non, vous persistez dans votre lancée, et en
venez à la conclusion que, si la fonction f est assez régulière au sens où
sa dérivée seconde est gentille, le critère "la fonction est décrétée nulle
en tel pixel si et seulement si sa valeur en ce pixel est inférieure à sa
dérivée discrète" est correct. Vous testez votre (géniale) idée d'abord sur
f(r, theta) = sin(r/10) et vous observez de jolis cercles concentriques
d'un pixel d'épaisseur, comme attendu. Puis vous avez l'idée (génialement
stupide mais
vous ne le savez pas encore) de tester sur f(r, theta) = sin((r^2)/100),
histoire de faire varier un petit peu le gradient et la densité des pixels
à afficher. Et alors vous obtenez ceci et vous restez perplexe un moment,
béat devant un motif quasiment périodique au lieu de cercles concentriques.