De l'art du découpage
comment découper une forme particulière dans une image ? grâce au mathématiques bien sûr !
La courbe d'une fonction f définie deux zones : au dessus et en dessous
Un point de coordonnées (x;y) est au dessus de la courbe de $f$ si $y>f(x)$ :en testant toutes les valeurs (x;y) des pixels on sait donc qui est où
(en pratique, l'axe y étant orienté vers le bas en informatique la notion de dessus/dessous est inversée)
Exemple avec f(x)= 100+40*sin (0.1x)
La couleur est : r,g,b = (r,0,0) if ( y>f(x) ) else (0,0,b)
C'est rouge «au-dessus» de la courbe (c.à.d en bas de l'image) et bleu ailleurs
Le découpage n'est alors limité que par les possibilités des fonctions mathématiques
Ici j'ai utilisé une sinusoïdale :
100 détermine la hauteur y moyenne (au milieu des vagues)
40 détermine l'amplitude en y des vagues
0.1 détermine la fréquence des vagues
quelques exemples pour la route :
Envie d'un découpage plus vertical ? Il suffit d'échanger le rôle de y et x
la notion de dessus/dessous devient à droite / à gauche
r,g,b = (r,0,0) if ( x>f(y) ) else (0,0,b)
On peut combiner plusieurs fonctions à l'aide d'opérateurs logiques
soit h(x)=100+0.005x²
il donne le découpage haut/bas suivant :
On introduit les deux tests qui valent True ou False
test1 = ( y>h(x) )
test2= ( x>f(x) )
On va colorier en rouge la zone (test1 and test2) , en vert la zone (test1 and not test2) etc
Bạn đang đọc truyện trên: AzTruyen.Top