zinc-dev > tk-zinc-3.303 > Graphics

Download:
tk-zinc-3.303.tar.gz

Annotate this POD

CPAN RT

New  1
Open  1
View/Report Bugs
Source  

NAME ^

Graphics : module Perl facilitant la creation d'objets graphiques complexes par une description simplifiee.

SYNOPSIS ^

use Graphics;

&GraphicsFunction(@params, ?option => value?, ...);

DESCRIPTION ^

Fonctions exportées

1. Création de composants graphiques

o buildZincItem()
o repeatZincItem()
o buildTabBoxItem()

2. Calculs de formes géométriques complexes

o roundedRectangleCoords()
o hippodromeCoords()
o ellipseCoords()
o roundedCurveCoords()
o polygonCoords()
o polylineCoords()
o curveLineCoords>()
o pathLineCoords()
o shiftPathCoords()
o tabBoxCoords()

3. Création de relief et ombre portée

o graphicItemRelief()
o graphicItemShadow()

4. Fonctions géométriques de base

o perpendicularPoint()
o lineAngle()
o vertexAngle()
o arc_pts()
o rad_point()
o bezierCompute()
o bezierSegment()
o bezierPoint()

5. Gestion des ressources images

o getPattern()
o getTexture()
o getImage()
o init_pixmaps()

6. Gestion des couleurs

o setGradiants()
o zincItemPredominantColor()
o ZnColorToRGB()
o hexaRGBcolor()
o createGraduate()
o MedianColor()
o LightingColor()
o RGBtoLCH()
o LCHtoRGB()
o RGBtoHLS()
o HLStoRGB()

1. Création de composants graphiques

buildZincItem(widget, parentgroup, options);

Creation d'items de representations Zinc. Les objets graphiques generes peuvent etre complexes (geometrie, multi contours, operateur de forme, empilage d'items, reliefs, ombre portee, repetition, transformations...) mais sont decrits par des options geometriques ou de surfacage 2D 1/2 de haut niveau.

Parametres :
widget

<widget> identifiant du widget zinc.

parentgroup

<tagOrId> identifiant de l'item group parent.

Options :
-itemtype => type

Specifie le(s) type(s) d'item(s) souhaite(s). Peut etre celui d'un item natif zinc (group, rectangle, arc, curve, text, icon), ou un 'metatype' permettant de specifier des curves 'particulieres'. Les sections coniques de ces metatypes (raccords ou arcs) seront simulees par des segments quadratiques de bezier. Ces metatypes sont :

roundedrectangle

decrit par 2 cordonnees (haut-gauche et bas-droite du rectangle) et un rayon de raccord angulaire. Une liste optionnelle de realisation des raccords [0 = sans raccord|1 = avec raccord] permet de specifier pour chaque angle le type de raccord (angle ou arc).

hippodrome

decrit par 2 cordonnees (haut-gauche et bas-droite du rectangle englobant). Si l'orientation n'est pas specifiee, le rayon de raccord sera egal a la moitie du plus petit cote . Une liste optionnelle de realisation des raccords permet de specifier pour chaque angle le type de raccord (angle ou arc).

ellipse

decrit par 2 cordonnees (haut-gauche et bas-droite du rectangle englobant). Une liste optionnelle de realisation des raccords permet de specifier pour chaque angle le type de raccord (angle ou arc).

polygone

polygone regulier a n cotes, (triangle equilateral, carre, pentagone, hexagone...) convexe ou en etoile. Le polygone sera inscrit dans un cercle dont le rayon est passe en parametres (un 2eme rayon 'interne' decrira un polygone etoile). Un rayon de raccord et une liste de realisation des raccords permettent des variantes interressantes.

roundedcurve

curve multicontours a coins arrondis, de rayon raccord unique, pour specifier une forme quelconque.

polyline

curve multicontours a coins arrondis. Le rayon de chaque raccord pouvant etre defini specifiquement.

pathline

creation d'une ligne multisegments 'epaisse', realisee par 'decalage' par rapport a un path donne (largeur et sens de decalage [left|both|right] optionnels). Le contour transforme en surface avec l'item Zinc triangles permet d'appliquer un degrade de couleurs le long du trace (lineaire, transversal ou double).

-coords => \@xy

<coords list> coordonnees geometriques ou de position de l'item.

-metacoords => \%metatype_params

<hashtable> calcul des coordonnées de l'item par passage d'un [meta]type d'item différent de celui décrit par -itemtype. (ex. un pathline défini par un polygone)

<coords list> coordonnees geometriques ou de position de l'item.

-params => \%zinc_attr

<hashtable> parametres zinc de l'item.

-contours => \@list

<contours list> arguments zinc d'ajout de contours .

-clip

<coords list or hashtable> clipping d'un item group.

-items

<hashtable> table d'items contenus dans un item group. provoque un appel récursif de la fonction buildZincItem().

-texture

<imagefile> ajout d'une texture a l'item.

-pattern

<imagefile> ajout d'un pattern a l'item.

-relief

<hash table> creation d'un relief a l'item a l'aide d'item zinc triangles. Invoque la fonction du module Graphics graphicItemRelief()

-shadow

<hash table> creation d'une ombre portee a l'item. Invoque la fonction du module Graphics graphicItemShadow()

-repeat

<hash table> repetition de l'item. Invoque la fonction du module Graphics repeatZincItem()

-scale => scale factor or [xscale, yscale]

application d'une transformation zinc->scale a l'item

-translate => [dx,dy]
 application d'une transformation zinc->translate a l'item
-rotate => <angle> (en degré)

application d'une transformation zinc->rotate a l'item

-addtags

<tags list> liste de tags specifiques a ajouter aux parametre item -tags.

-name

<string> nom de l'item.

repeatZincItem(widget, item, options);

Répétition (clonage) d'un objet Zinc de representation.

Parametres :
widget

<widget> identifiant du widget zinc.

item

<tagOrId> identifiant de l'item zinc a dupliquer.

Options :
-num => integer

Nombre de répétitions.

-dxy => [dx, dy]

Paramètres de translation a appliquer entre 2 copies.

-angle => <angle>

angle de rotation en degré a appliquer entre 2 copies.

-copytag => <tag name>

ajout d'un tag indexé pour chaque copie.

-params => \%zinc_attr

Paramétrage specialises de chaque copie

buildTabBoxItem(widget, parentgroup, options);

Construit les items de représentation d'une boîte à onglets multi-pages. Le positionnement, la forme et la taille des onglets est définie automatiquement ou spécifiés par options. L'ajout de titres aux pages est possible. Des tags de base (intercalaires et titres) permettent de définir des interactions de sélection/navigation par bindings.

Parametres :
widget

<widget> identifiant du widget zinc.

parentgroup

<tagOrId> identifiant de l'item group parent.

Options :
-coords => [[x0,y0],[x1,y1]]

<coords> coordonnées haut-gauche et bas-droite de la BoundingBox du tabBox.

-numpages

<integer> nombre de pages du TabBox.

-anchor => 'n'|'e'|'s'|'w'

ancrage nord, est, sud ou ouest des onglets (par défaut 'n')

-alignment => 'left'|'center'|'right'

alignement gauche, centré ou droit des onglets sur l'ancrage (par défaut left)

-tabwidth => 'auto'|<dimension>|<dimensionList>

longeur des onglets : 'auto' longeur répartie sur le coté, longeur absolue ou liste de longeurs ces dimensions sont autoajustées si dépassement. (par défaut 'auto').

-tabheight => 'auto'|<dimension>

hauteur des onglets (par défaut 'auto')

-tabshift => 'auto'|<dimension>

offset de biseau entre la base et le haut de l'onglet (par défaut 'auto').

-overlap => 'auto'|<dimension>

offset de décalage entre 2 onglets (par défaut 'auto').

-radius

<dimension> rayon des arrondis d'angle des onglets. (par défaut 0)

-corners

<booleanList> liste d'application du raccord aux angles sous forme booleenne 0 = sans raccord 1 = avec raccord.

-params => \%zinc_attr

<hashtable> parametres zinc de l'item.

-texture

<imagefile> ajout d'une texture a l'item.

-relief

<hash table> creation d'un relief pour les pages du tabBox. Invoque la fonction du module Graphics graphicItemRelief()

-tabtitles

<hashtable> table de hash de définition des titres d'onglets (label, params).

-pageitems

<hashtable> table d'items 'complémentaire' à réaliser pour chaque page. provoque un appel récursif de la fonction buildZincItem().

2. Calculs de formes géométriques complexes

roundedRectangleCoords(coords, options);

Retourne les coordonnées (curve) d'un rectangle à coins arrondis

Parametres :
coords => [[x0,y0],[x1,y1]]

<coordList> coordonnées haut-gauche et bas-droite du rectangle.

Options :
-radius

<dimension> rayon de raccord circulaire des angles.

-corners => \@cornersList

Liste de réalisation des raccords de sommets [0 = pad de raccord (droit)| 1 = raccord circulaire]. (par défaut [1,1,1,1]).

hippodromeCoords(coords, options);

Retourne les coordonnées (curve) d'un hippodrome

Parametres :
coords => [[x0,y0],[x1,y1]]

<coordList> coordonnées haut-gauche et bas-droite du rectangle exinscrit à l'hippodrome.

Options :
-orientation => <horizontal|vertical>

orientation forcée de l'hippodrome (sinon hauteur = plus petit coté).

-corners => \@cornersList

Liste de réalisation des raccords de sommets [0 = pad de raccord (droit)| 1 = raccord circulaire]. (par défaut [1,1,1,1]).

-trunc => <left|right|top|bottom|both>

troncatures des cotés circulaires de l'hippodrome.

ellipseCoords(coords, options);

Retourne les coordonnées (curve) d'une ellipse

Parametres :
coords => [[x0,y0],[x1,y1]]

<coordList> coordonnées haut-gauche et bas-droite du rectangle exinscrit.

Options :
-corners => \@cornersList

Liste de réalisation des quadrants [0 = angle droit| 1 = raccord d'ellipse]. (par défaut [1,1,1,1]).

roundedCurveCoords(coords, options);

Retourne les coordonnées d'une curve à coins arrondis.

Parametres :
coords => [[x0,y0],...[xn,yn]]

<coordList> coordonnées de la curve

Options :

-radius : <dimension> rayon de raccord des angles. par defaut 0

-corners : <booleanList> liste d'application du raccord circulaire aux angles sous forme booleenne 0 = sans raccord 1 = avec raccord. par defaut [1,1,...,1].

polygonCoords(coords, options);

Retourne les coordonnées d'un polygone régulier à n cotés ou d'une étoile à n branches. Le polygone sera inscrit dans un cercle de rayon -radius, un 2ème rayon interne décrira les sommets interne de l'étoile. Raccords circulaires optionnels des sommets du polygone/étoile

Parametres :
coords => [x0,y0]

<coords> coordonnées du centre du cercle exinscrit au polygone/étoile

Options :

-numsides : <dimension> nombre de cote du polygone ou nombre de branches de l'etoile

-radius : <dimension> rayon du cercle exinscrit au polygone

-startangle : <angle> angle de depart du trace de la figure

-inner_radius : <dimension> rayon du cercle des points 'internes' de l'etoile

-corner_radius : <dimension> rayon des raccords d'angles

-corners : <booleanList> liste d'application du raccord aux angles sous forme booleenne 0 = sans raccord 1 = avec raccord. par defaut [1,1,1,1].

polylineCoords(coords, options);

Retourne les coordonnées d'une polyline, ligne 'brisée' multi-segments avec raccords angulaires optionnels.

Parametres :
coords => [[x0,y0],...[xn,yn]]

<coordList> liste de coordonnées des sommets de la polyline

Options :

-radius : <dimension> rayon global de raccord des angles. par defaut 0

-corners : <booleanList> liste d'application du raccord circulaire aux angles sous forme booleenne 0 = sans raccord 1 = avec raccord. par defaut [1,1,...,1].

-corners_radius : <dimensionList> Liste des rayons de raccord des angles.

curveLineCoords(coords, options);

ATTENTION FONCTION EN CHANTIER

Retourne les coordonnées curve (de surface) d'un stroke. la ligne est décrite le long d'un chemin et dessinée selon les attributs graphiques classiques 'stroke' (style d'épaisseur, d'extremité, de jointure, de tiret...)

Parametres :
coords => [[x0,y0],...[xn,yn]]

<coordList> coordonnées de la curve

Options :

-width : <dimension> épaisseur de la ligne. par defaut 1

-linecap : <'butt'|'round'|'square'> Forme des extrémités des tracés ouverts.

-linejoin : <'miter'|'round'|'bevel'> Forme des sommets des tracés.

-dasharray : <'none'|motifList> Spécification du tireté : none (aucun) ou liste de longueurs tiret,[espace],[tiret]... permettant de définir le dessin du tireté (par défaut none)

-dashoffset : <dimension> distance décalage de départ dans le dessin du tireté (par défaut 0)

pathLineCoords(coords, %options);

retourne les coordonnées (triangles) d'une ligne multisegments 'epaisse', realisee par 'décalage' par rapport à un path donné (largeur et sens de décalage [out|center|in] optionnels).

Parametres :
coords => [[x0,y0],...[xn,yn]]

<coordList> liste de coordonnées du path

Options :

-closed : <boolean> fermeture du tracé. par defaut 0

-shifting : <'out'|'center'|'in'> sens de décalage de l'épaisseur de contour : 'center' (1/2 décalage de chaque coté du path) 'out' (décalage externe) 'in' (décalage interne) par défaut 'center'.

-width : <dimension> Largeur du décalage de ligne (par défaut 2).

shiftPathCoords(coords, %options);

retourne les coordonnées curve de 'décalage' par rapport à un path donné.

Parametres :
coords => [[x0,y0],...[xn,yn]]

<coordList> liste de coordonnées du path

Options :

-closed : <boolean> fermeture du tracé. par defaut 0

-shifting : <'out'|'in'> sens de décalage du path : 'out' (décalage externe) 'in' (décalage interne) par défaut 'out'.

-width : <dimension> Largeur du décalage de ligne (par défaut 1).

tabBoxCoords(coords, options);

Retourne les coordonnées de construction d'un TabBox (boîte à onglets) : liste de curve décrivant les 'pages' du TabBox et coordonnées de position des titres onglets.

Parametres :
coords => [[x0,y0],[x1,y1]]

<coords> coordonnées haut-gauche et bas-droite de la BoundingBox du tabBox.

Options :

-numpages : <integer> nombre de pages du TabBox.

-anchor : <'n'|'e'|'s'|'w'> ancrage nord, est, sud ou ouest des onglets (par défaut 'n')

-alignment : <'left'|'center'|'right'> alignement gauche, centré ou droit des onglets sur l'ancrage (par défaut left)

-tabwidth : 'auto'|<dimension|dimensionList> longeur des onglets : 'auto' longeur répartie sur le coté, longeur absolue ou liste de longeurs ces dimensions sont autoajustées si dépassement. (par défaut 'auto').

-tabheight : 'auto'|<dimension> hauteur des onglets (par défaut 'auto')

-tabshift : 'auto'<dimension> offset de biseau entre la base et le haut de l'onglet (par défaut 'auto').

-overlap : 'auto'<dimension> offset de décalage entre 2 onglets (par défaut 'auto').

-radius : <dimension> rayon des arrondis d'angle des onglets. (par défaut 0)

-corners : <booleanList> liste d'application du raccord aux angles sous forme booleenne 0 = sans raccord 1 = avec raccord.

3. Création de reliefs et ombre portée

graphicItemRelief(widget, item, %options);

Construit un relief à l'item géometrique (qui peut etre multicontours) en utilisant des items zinc triangles. Ce relief de type 'embossage' de forme possede un profil (flat ou rounded) et dérive en luminosite la couleur dominante de l'item (ou une couleur donnée) suivant l'orientation d'éclairage global zinc -lighangle (ou un angle de lumière donné).

Parametres :
widget

identifiant du widget zinc.

item

identifiant de l'item zinc à mettre en relief.

Options :

-closed : <boolean> fermeture (de forme) du relief (par défaut 1).

-profil : <'flat'|'rounded'> type de profil du relief (par défaut 'rounded').

-relief : <'raised'|'sunken'> sens de l'embossage (par defaut 'raised').

-side : <outside|inside> position externe ou interne du relief (defaut 'inside').

-color : <color> couleur de base du relief (défaut couleur dominante de l'item).

-smoothed : <boolean> lissage des 'facettes' du relief (par defaut 1).

-lightangle : <angle> angle de la lumiere (par defaut attribut -lightangle du widget).

-width : <dimension> largeur du 'contour' relief.

-fine : <boolean> mode precision courbe de bezier (par defaut 0 : auto-ajustee).

graphicItemShadow(widget, item, %options);

Cree une ombre portee a l'item geometrique (qui peut etre multicontours) en utilisant des items zinc triangles et curve. Cette ombre correspond a une projection de la forme en fonction d'une distance (par defaut 10) d'une orientation lumineuse (par defaut la valeur globale -lightangle du widget) et d'un 'grossissement' (par defaut 0). Une largeur 'width' de perimetre de diffusion/diffraction lumineuse (par defaut 4) qui permet de lisser le passage de l'ombre au fond, une couleur (par defaut black) et une opacite (par defaut 50) completent la specification.

Parametres :

widget : <widget> identifiant du widget zinc

item : <tagOrId> identifiant de l'item zinc

Options :

-opacity : <percent> poucentage d'opacite de l'ombre (par defaut 50).

-distance : <dimension> distance de projection de l'ombre (par defaut 10).

-enlarging : <dimension> 'grossissement' cone de projection (defaut 0).

-color : <color> couleur de l'ombre (par defaut black).

-lightangle : <angle> angle de la lumiere (par defaut attribut -lightangle du widget).

-width : <dimension> largeur du perimetre de diffusion/diffraction (par defaut 4).

4. Fonctions géométriques de base

perpendicularPoint(point, line);

retourne les coordonnées du point perpendiculaire abaissé d'un point sur une ligne.

Parametres :
point => [x, y]

<coords> coordonnées du point de référence.

line => [[x0, y0],[x1, y1]]

<coordsList> liste de coordonnées des deux points de la ligne de référence.

lineAngle(startpoint, endpoint);

retourne l'angle formée par un vecteur, s'utilise aussi pour connaitre l'angle 'circulaire' d'un point par rapport à un centre de référence.

Parametres :
startpoint => [x, y]

<coords> coordonnées du point de départ du segment (ou centre de référence).

endpoint => [x, y]

<coords> coordonnées du point de fin du segment (ou point 'circulaire' de référence).

lineNormal(startpoint, endpoint);

retourne la valeur d'angle perpendiculaire à un vecteur (utilisée par exemple pour mesurer l'incidence de lumière d'une facette).

Parametres :
startpoint => [x, y]

<coords> coordonnées du point de départ du segment (ou centre de référence).

endpoint => [x, y]

<coords> coordonnées du point de fin du segment (ou point 'circulaire' de référence).

vertexAngle(point0, point1, point2);

retourne la valeur de l'angle formé par trois points ainsi que la valeur d'angle de la bisectrice de l'angle (fonction utilisé pour les calculs de décalages de path.

Parametres :
point0 => [x, y]

<coords> coordonnées du premier point de définition de l'angle.

point1 => [x, y]

<coords> coordonnées du deuxième point de définition de l'angle (sommet).

point2 => [x, y]

<coords> coordonnées du troisième point de définition de l'angle.

arc_pts(center, radius, %options);

Calcul des points constitutifs d'un arc

Parametres :
center => [x0,y0]

<coords> coordonnées du centre de l'arc.

radius

<dimension> rayon de l'arc.

Options :
-angle

<angle> angle de départ (en degré) de l'arc (par défaut 0)

-extent

<angle> delta angulaire (en degré) de l'arc (par défaut 360)

-step

<angle> pas de progression angulaire (en degré) de calcul des points (par défaut 10).

rad_point(center, radius, angle);

Retourne le point circulaire défini par centre-rayon-angle.

Parametres :
center => [x0,y0]

<coords> coordonnées du centre de l'arc.

radius

<dimension> rayon de l'arc.

angle

<angle> angle (en degré) du point de circonférence avec le centre du cercle.

bezierSegment(coords, %options);

Calcul d'une approximation de segment (Quadratique ou Cubique) de bezier.

Parametres :
coords

<coordsList> Liste de coordonnées des points définissant le segment de bezier.

Options :
-tunits

<integer> nombre pas de division des segments bezier (par défaut 20)

-skipend

<boolean> ne pas retourner le dernier point du segment (pour chaînage de segments).

bezierPoint(t, coords);

Calcul d'un point du segment (Quadratique ou Cubique) de bezier. t représentation du temps (de 0 à 1). coords = (P1, C1, <C1>, P2) liste des points définissant le segment de bezier P1 et P2 : extémités du segment et pts situés sur la courbe C1 <C2> : point(s) de contrôle du segment

courbe bezier niveau 2 sur (P1, P2, P3) P(t) = (1-t)²P1 + 2t(1-t)P2 + t²P3

courbe bezier niveau 3 sur (P1, P2, P3, P4) P(t) = (1-t)³P1 + 3t(1-t)²P2 + 3t²(1-t)P3 + t³P4

Parametres :
t

<pourcent> (de 0 à 1) représentation du temps.

coords

<coordsList> Liste de coordonnées des points définissant le segment de bezier.

bezierCompute(coords, %options);

Calcul d'une approximation auto-ajustée de segment (Quadratique ou Cubique) de bezier. l'approximation se fait par subdivision successive de la courbe jusqu'à atteindre une distance avec la courbe théorique <= à la précision passée par option (par défaut 0.2).

Parametres :
coords

<coordsList> Liste de coordonnées des points définissant le segment de bezier.

Options :
-precision

<dimension> seuil limite du calcul d'approche de la courbe (par défaut .2)

-skipend

<boolean> ne pas retourner le dernier point du segment (pour chaînage de segments).

5. Gestion des ressources images

getPattern(filename, %options);

retourne et partage la ressource image bitmap en l'initialisant et la stockant si première utilisation.

Parametres :
filename

<image filename> non du fichier bitmap pattern

Options :
-storage

<hashtable> référence de la table de stockage privée des patterns.

getTexture(widget, filename, %options);

retourne et partage la ressource image texture en l'initialisant et la stockant si première utilisation.

Parametres :
widget

<widget> identifiant du widget zinc.

filename

<imagefile> non du fichier image texture

Options :
-storage

<hashtable> référence de la table de stockage privée des textures.

getImage(widget, filename, %options);

retourne et partage la ressource image en l'initialisant et la stockant si première utilisation.

Parametres :
widget

<widget> identifiant du widget zinc.

filename

<imagefile> non du fichier image

Options :
-storage

<hashtable> référence de la table de stockage privée des images.

init_pixmaps(widget, filenames, %options);

Initialise et stocke un ensemble d'images.

Parametres :
widget

<widget> identifiant du widget zinc.

filenames

<imagefileList> Liste des fichier images à initialiser.

Options :
-storage

<hashtable> référence de la table de stockage privée des images.

6. Gestion des couleurs

setGradients(widget, gradients);

Création de gradiants nommés Zinc

Parametres :
widget

<widget> identifiant du widget Zinc

gradients

<hashtable> référence de la table de définition des gradiants zinc ('non' => 'zincGradient').

zincItemPredominantColor(widget, item);

retourne la couleur dominante d'un item ('barycentre' gradiant fillcolor).

Parametres :
widget

<widget> identifiant du widget Zinc

item

<tagOrId> identifiant de l'item zinc.

medianColor(color1, color2, rate);

calcul d'une couleur intermédiaire défini par un ratio ($rate) entre 2 couleurs.

Parametres :
color1

<color> première couleur

color2

<color> première couleur

rate

<pourcent> (de 0 à 1) position de la couleur intermédiaire.

createGraduate(widget, steps, refcolors, repeat);

création d'un jeu de couleurs intermédiaires (dégradé) entre n couleurs.

Parametres :
widget

<widget> identifiant du widget Zinc

steps

<integer> nombre totale de couleurs retournées.

refcolors

<colorList> liste de couleurs servant à créer le dégradé.

repeat

<integer> répétition de chaque couleur utilisé par exemple pour triangles path où la couleur est répétée 2 fois (par défaut 1).

lightingColor(color, newL);

Modification d'une couleur par sa composante luminosité (exemple relief).

Parametres :
color

<color> couleur au format zinc.

newL

<pourcent> (de 0 à 1) nouvelle valeur de luminosité.

ZnColorToRGB(zncolor);

conversion d'une couleur Zinc hexa au format RGBA (255,255,255,100).

Parametres :
zncolor

<color> couleur au format hexa zinc (#ffffff ou #ffffffffffff).

RGBtoLCH(r, g, b);

conversion d'une couleur de l'espace RGB à l'espace CIE LCH°.

Parametres :
r

<pourcent> (de 0 à 1) valeur de la composante rouge de la couleur RGB.

g

<pourcent> (de 0 à 1) valeur de la composante verte de la couleur RGB.

b

<pourcent> (de 0 à 1) valeur de la composante bleue de la couleur RGB.

LCHtoRGB(L, C, H);

conversion d'une couleur de l'espace CIE LCH° à l'espace RGB.

Parametres :
L

<pourcent> (de 0 à 1) valeur de la composante luminosité de la couleur CIE LCH.

C

C : <pourcent> (de 0 à 1) valeur de la composante saturation de la couleur CIE LCH

H

H : <pourcent> (de 0 à 1) valeur de la composante teinte de la couleur CIE LCH

RGBtoHLS(r, g, b);

conversion d'une couleur de l'espace RGB à l'espace HLS.

Parametres :
r

<pourcent> (de 0 à 1) valeur de la composante rouge de la couleur RGB.

g

<pourcent> (de 0 à 1) valeur de la composante verte de la couleur RGB.

b

<pourcent> (de 0 à 1) valeur de la composante bleue de la couleur RGB.

HLStoRGB(H, L, S);

conversion d'une couleur de l'espace HLS à l'espace RGB.

Parametres :
H

<pourcent> (de 0 à 1) valeur de la composante teinte de la couleur HLS.

L

C : <pourcent> (de 0 à 1) valeur de la composante luminosité de la couleur HLS.

S

H : <pourcent> (de 0 à 1) valeur de la composante saturation de la couleur HLS.

hexaRGBcolor(r, g, b, a);

conversion d'une couleur RGBA (255,255,255,100) au format Zinc '#ffffff'.

Parametres :
r

<colorComposant> (0 à 255) composante rouge de la couleur rgba.

g

<colorComposant> (0 à 255) composante verte de la couleur rgba.

b

<colorComposant> (0 à 255) composante bleue de la couleur rgba.

a

<colorComposant> (0 à 255) composante alpha de la couleur rgba.

EXEMPLE ^

my %gradset = ( 'gdlens' => '=radial -15 -20|#ffb7b7;70|#bd6622;90', 'gdstar' => '=radial -15 -20|#ffb7b7;50|#bd6622;90');

my %starstyle => ( # table hash parametres et options -itemtype => 'group', -coords => [250, 250], -params => {-priority => 90, -tags => ['starlens', 'move'], -sensitive => 1, -atomic => 1, }, -items => { 'lens' => {-itemtype => 'hippodrome', -coords => [[-200, -200], [200, 200]], -params => {-closed => 1, -filled => 1, -fillcolor => 'gdlens', -linewidth => 1.5, -linecolor => '#440000', -priority => 10, }, -relief => {-width => 14, -profil => 'rounded', -lightangle => 135, }, -shadow => {-distance => 20, -width => 18, -lightangle => 135, -opacity => 40, -enlarging => 6, }, }, 'star' => {-itemtype => 'polygone', -coords => [0, 0], -numsides => 5, -radius => 180, -inner_radius => 70, -corner_radius => 10, -startangle => 270, -corners => [0,1,0,1,0,1,0,1,0,1], -params => {-filled => 1, -fillcolor => 'gradstar', -linewidth => 1, -linecolor => '#330000', -priority => 20, }, -relief => {-width => 10, -profil => 'rounded', -side => 'outside', -relief => 'sunken', }, }, }, );

&setGradients($widget, \%gradset);

my $star = &buildZincItem($zinc, $topgroup, \%starstyle);

AUTEURS ^

Jean-Luc Vinot <vinot@cena.fr>

syntax highlighting: