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