brush


pinceau

Principle
brush
adjust
bitmap
col
dist
dynamic brush
generate pixel
image brush
lut
multiple properties
neural brush
particle alea
particle rand
pixel
programmable brush
radius
texture
transp
type
Voir aussi

Principe

       Un pinceau (brush) est un objet d´ anyflo, utilisé conjointement avec des images en mode palette. Lorsqu´il est associé à la souris (valeur par défaut) il est affiché au pont cliqué. En mode programme il est affiché au point poi brush(id)=x,y.
       Il est nécessaire de faire yes brush pour que les pinceaux soient pris en compte.
       Par défaut leur type est un disque, mais on peut aussi en faire un rectangle.
       Il peut être dynamique, c´est à dire que sa trace peut continuer à vivre.
       Il peut être gérée par un réseau neuronal.
       On peut aussi découper une fenêtre rectangulaire d´une image quelconque et en faire une texture, ou l´intérieur d´une ligne, par image(id1,id2)line(L)poi(x,y)adjust puis image brush(id)=id2.

Un pinceau est nécessairement associé à une image, (par image brush), sur laquelle il agit. L´histirique de cette action est mémorisé (avec un temps de l´oubli défini par time brush), ce qui permet de le rendre évolutif.

Mode mouse

       Ils permettent de "peindre" directement (clic left) dans la bitmap de la carte graphic.

Pinceau programmable

       Comme objets généraux d´anyflo ils en supportent toutes les propriétés simples ou multiples, on peut leur affecter des trajectoires, ou les considérer comme individus de populations de génétiques ou encore les connecter aux sorties de réseaux neuronaux dont les entrées peuvent être connectées à des capteurs variés.
Remarques:
Il est nécessaire de faire close brush(id)=1 pour dissocier le pinceau de la mouse et l´associer aux autres commandes d´anyflo.
Pour animer un pinceau avec des trajectoires il faut définir des trajectoires sur chaque point, même s´il n´en existe qu´un, par:
traj(ni)transf(p)vertex(num)brush(id);
Il est nécessaire de faire yes traj pour que les trajectoires soient prises en compte.
Exemple:
traj(100)tran(-200,0,0, 0,200,0, 200,0,0)ext(5,1,0)vertex(1)brush(1)period(-1);
Définit une trajectoire de déplacement sur un arc de 100 points pour le point 1 du pinceau 1 avec une period -1.

brush

brush(id)

brush(id_pi)image(id_im)dynamic; définit un pinceau id_pi de type image associé à l´image dynamic id_im
       Crée le pinceau vide d´identificateur id. Il faut lui affecter des propriétés simples ou multiples pour le rendre opérationnel. Si on l´anime il faudra le rendre actif par yes brush.

Pinceau dynamic

brush(id_pi)image(id_im)dynamic; définit un pinceau id_pi dynamique associé à l´image dynamic id_im.
Le mode palette devra afficher l´image en (x,y) et la commande image(id_im)brush(id_pi)line(L)poi(x,y) stocke dans l´image du pinceau la portion de l´image id_im intérieure à la ligne L, lorsque le pinceau est sollicité (clic left) cette portion est affichée sous le pinceau mais elle set également stockée dans l´image id_im et, celle-ci étant dynamique, les pixels changés entrent en résonnance: et la trace du pinceau continue donc à vivre après son passage.


Pinceau neuronal

network brush(id)=idr associe au pinceau id le réseau neuronal idr.
Le pinceau capte une image Ic qu'il convole en un Motif passé en entrée du réseau qui donne une sortie Loi laquelle est étendue en une image Ie:
              Ic ==>[ convolution]==> Motif ==>[Réseau]==> Loi ==>[extension]==> Ie
Ic a pour dimensions les rayons du pinceau.
L´algorithme d´extension est déterminé par:
       local(0)brush(id)="f"f() est une fonction en langage anyflo, ou:
       local(0)brush(id)=numnum est la case de la fonction EXEC_PINCEAU_C(struct Objet *p_obj, long num) du fichier utilb.c
       La Loi est stockée comme propriété meta du pinceau, la fonction local doit retourner l´image Ie dans cette même propriété.

Propriétés simples

center        close        col
defined at creation        dist        dynamic
illum
limit
network
particle        poi        precision
radius
texture        transp        type
validate

Définition à la creation

Les propriétés simples peuvent être définies à la création du pinceau:
Exemples:
brush(1)col(1,.8,.4);
       définit un pinceau carré de couleur orange.
brush(id)disk poi(100,100)dim(30,20)col(0,1,0)illum(1,0,1);
       Définit un pinceau en forme de disque plein, centré en (100,100), de rayons 30 (en x) et 20 (en y), de couleur verte, opaque au centre et transparent sur le bord.
brush(id)image disk dim(30,20)col(0,0,1)illum(1,1,0);
       Définit un pinceau image circulaire de rayons 30 et 20, de couleur bleue, transparent au centre et opaque sur le bord.

Propriétés multiples

meta alea brush
meta law brush
meta motif brush
meta rand brush
particle

type brush

Retourne le type du pinceau id

disk brush(id)="ttt"

Change ce type: disk
"disk": de taille radius brush(id) brush. rectangle
"rectangle": de taille radius brush(id) brush. line
"line"
: if faut avoir fait brush(id1)image(id2).

Voir aussi:

adjust
bitmap brush
col
contour brush
dist
dynamic brush
edit brush
generate pixel brush
image brush
ini brush
lut
neural brush
no brush
particle alea
particle rand
pixel
yes brush
palette
texture
transp
type
rem brush