Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Français


pixel_drawing_mode

mode d'actualisation des couleurs RVB des pixels lors des tracés graphiques

Description

Les couleurs des pixels sont encodées selon les 3 canaux RVB (Rouge Vert Bleu). Pour chaque pixel, chaque canal a une valeur entière sur [0, 255] (uint8).

.pixel_drawing_mode est une des propriétés des fenêtres graphiques. Elle indique l'opération binaire à effectuer pour chaque canal RVB de chaque pixel entre la couleur préexistante du pixel de la fenêtre avant le tracé, et la couleur du même pixel de l'objet à tracer. Scilab n'actualise pas nécessairement la couleur du pixel en imposant la couleur de l'objet à tracer comme nouvelle couleur "opaque". La couleur du fond peut par exemple être prise en compte, autorisant certains effets de transparence.

  • src est la couleur du pixel considéré dans l'objet à tracer / dessiner.
  • cur est la couleur courante préxistante du même pixel, avant le tracé.
Les valeurs possibles (de type texte) de l'attribut pixel_drawing_mode sont listées ci-après, suivies de l'opération binaire correspondante. Dans ces expressions logiques,
  • NOT v signifie 255 - v
  • a AND b signifie a & b
  • a OR b signifie a | b
  • a XOR b signifie (a OR b) AND NOT (a AND b)

Valeur opération effectuée / résultat
"copy" (par défaut) src
"copyInverted" NOT src
"noop" cur
"invert" NOT cur
"set" White
"clear" Black
"equiv" cur XOR (NOT src)
"xor" cur XOR src
"or" cur OR src
"orInverted" cur OR (NOT src)
"orReverse" (NOT cur) OR src
"nor" NOT (cur OR src)
"and" cur AND src
"andInverted" cur AND (NOT src)
"andReverse" (NOT cur) AND src
"nand" NOT (cur AND src)

Exemples

pxmodes = ["copy", "copyInverted", "equiv", "xor", ..
           "and",  "nand", "andReverse", "andInverted", ..
           "or",   "nor",  "orReverse",  "orInverted", ..
           "noop", "set",  "clear",      "invert" ..
           ];
// Dimensions et recouvrement marginal des fenêtres en damier
s = 300;
hm = 8;
vm = 52;
//
for k = 16:-1:1
    m = pxmodes(k);

    // Position de la fenêtre
    i = fix((k-1)/4);
    j = modulo(k-1,4);

    // Création et paramétrage de la fenêtre
    f = figure("toolbar_visible","off", ..
               "menubar_visible","off", ..
               "infobar_visible","off", ..
               "figure_position", [j*(s-hm), i*(s-vm)], ..
               "figure_size", [s s], ..
               "background", color("grey85"), ..
               "pixel_drawing_mode", m ..
               );
    drawlater

    // Configuration du tracé
    b = 0.82;
    plot2d([],[],0,"051"," ",[-1 -1 1 1]*b)
    plot2d([-1 1]*b,[0 0])
    a = gca();
    a.isoview = "on";
    a.tight_limits = "on";
    title(m,"fontsize",4)

    // Affichage de 3 disques rouge, vert et bleu se recouvrant partiellement
    xfarc(-0.7, 0.8, 1, 1, 0, 360*64)
    e = gce();
    e.background = color("red");
    e.fill_mode = "on";

    xfarc(-0.2, 0.5, 1, 1, 0, 360*64)
    e = gce();
    e.background = color("blue");
    e.fill_mode = "on";

    xfarc(-0.7,  0.2, 1, 1, 0, 360*64)
    e = gce();
    e.background = color("green");
    e.fill_mode = "on";

    drawnow
end
// Ménage : on supprime les 16 fenêtres
b = messagebox(_("Presser OK pour fermer les fenêtres"),"Clore la démonstration", "question", "modal");
w = winsid();
close(w($-15:$));

Voir ausi

  • figure_properties — description of the graphics figure entity properties
  • anti_aliasing — Figure's property smoothing the stair-like aspect when rendering curves
  • colordef — Set the color look-and-feel of a given or of all forthcoming graphic figures
  • lighting — Lighting overview
  • Matplot — 2D plot of a matrix using colors
Report an issue
<< gdf Fenêtres - Figures scf >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:39:43 CEST 2023