From e6a05dbef707dc10e546ef8fef8fc2a8b7d805bf Mon Sep 17 00:00:00 2001 From: cvs2svn Date: Mon, 24 Jan 2005 15:46:33 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'POSTSCRIPT'. --- Perl/Zinc/Graphics.pod | 1749 ------------------------------------------------ 1 file changed, 1749 deletions(-) delete mode 100644 Perl/Zinc/Graphics.pod (limited to 'Perl/Zinc/Graphics.pod') diff --git a/Perl/Zinc/Graphics.pod b/Perl/Zinc/Graphics.pod deleted file mode 100644 index 579b6d7..0000000 --- a/Perl/Zinc/Graphics.pod +++ /dev/null @@ -1,1749 +0,0 @@ - -=head1 NAME - -Graphics : module Perl facilitant la creation d'objets graphiques complexes -par une description simplifiee. - - -=head1 SYNOPSIS - -use Graphics; - -&GraphicsFunction(@params, ?option => value?, ...); - -=head1 DESCRIPTION - -Z<> - -=head2 Fonctions exportées - -=head3 1. Création de composants graphiques - -=over - -=item B buildZincItem(Z<>) - -=item B repeatZincItem(Z<>) - -=item B buildTabBoxItem(Z<>) - -=back - -=head3 2. Calculs de formes géométriques complexes - -=over - -=item B roundedRectangleCoords(Z<>) - -=item B hippodromeCoords(Z<>) - -=item B ellipseCoords(Z<>) - -=item B roundedCurveCoords(Z<>) - -=item B polygonCoords(Z<>) - -=item B polylineCoords(Z<>) - -=item B curveLineCoords>(Z<>) - -=item B pathLineCoords(Z<>) - -=item B shiftPathCoords(Z<>) - -=item B tabBoxCoords(Z<>) - -=back - -=head3 3. Création de relief et ombre portée - -=over - -=item B graphicItemRelief(Z<>) - -=item B graphicItemShadow(Z<>) - -=back - -=head3 4. Fonctions géométriques de base - -=over - -=item B perpendicularPoint(Z<>) - -=item B lineAngle(Z<>) - -=item B vertexAngle(Z<>) - -=item B arc_pts(Z<>) - -=item B rad_point(Z<>) - -=item B bezierCompute(Z<>) - -=item B bezierSegment(Z<>) - -=item B bezierPoint(Z<>) - -=back - -=head3 5. Gestion des ressources images - -=over - -=item B getPattern(Z<>) - -=item B getTexture(Z<>) - -=item B getImage(Z<>) - -=item B init_pixmaps(Z<>) - -=back - -=head3 6. Gestion des couleurs - -=over - -=item B setGradiants(Z<>) - -=item B zincItemPredominantColor(Z<>) - -=item B ZnColorToRGB(Z<>) - -=item B hexaRGBcolor(Z<>) - -=item B createGraduate(Z<>) - -=item B MedianColor(Z<>) - -=item B LightingColor(Z<>) - -=item B RGBtoLCH(Z<>) - -=item B LCHtoRGB(Z<>) - -=item B RGBtoHLS(Z<>) - -=item B HLStoRGB(Z<>) - -=back - -Z<> - -=head2 1. Création de composants graphiques - - -=over - -=item B(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. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - identifiant de l'item group parent. - - -=back - - -=item B : - - -=over - -=item B<-itemtype> => type - -Specifie le(s) type(s) d'item(s) souhaite(s). Peut etre celui d'un item -natif zinc (B, B, B, B, B, B), -ou un B<'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 : - -=over - -=item 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). - -=item 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). - -=item 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). - -=item 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. - -=item roundedcurve - -curve multicontours a coins arrondis, de rayon raccord unique, -pour specifier une forme quelconque. - -=item polyline - -curve multicontours a coins arrondis. Le rayon de chaque raccord pouvant etre defini -specifiquement. - -=item 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). - -=back - - -=item B<-coords> => \@xy - - coordonnees geometriques ou de position de l'item. - -=item B<-metacoords> => \%metatype_params - - 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) - - coordonnees geometriques ou de position de l'item. - -=item B<-params> => \%zinc_attr - - parametres zinc de l'item. - -=item B<-contours> => \@list - - arguments zinc d'ajout de contours . - -=item B<-clip> - - clipping d'un item group. - -=item B<-items> - - table d'items contenus dans un item group. -provoque un appel récursif de la fonction buildZincItem(). - -=item B<-texture> - - ajout d'une texture a l'item. - -=item B<-pattern> - - ajout d'un pattern a l'item. - -=item B<-relief> - - creation d'un relief a l'item a l'aide d'item zinc triangles. -Invoque la fonction du module Graphics graphicItemRelief() - -=item B<-shadow> - - creation d'une ombre portee a l'item. -Invoque la fonction du module Graphics graphicItemShadow() - -=item B<-repeat> - - repetition de l'item. -Invoque la fonction du module Graphics repeatZincItem() - -=item B<-scale> => scale factor or [xscale, yscale] - -application d'une transformation zinc->scale a l'item - -=item B<-translate> => [dx,dy] - - application d'une transformation zinc->translate a l'item - -=item B<-rotate> => (en degré) - -application d'une transformation zinc->rotate a l'item - -=item B<-addtags> - - liste de tags specifiques a ajouter aux parametre item -tags. - -=item B<-name> - - nom de l'item. - -=back - -=back - -Z<> - -=item B(widget, item, options); - -Répétition (clonage) d'un objet Zinc de representation. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - identifiant de l'item zinc a dupliquer. - -=back - -=item B : - -=over - -=item B<-num> => integer - -Nombre de répétitions. - -=item B<-dxy> => [dx, dy] - -Paramètres de translation a appliquer entre 2 copies. - -=item B<-angle> => - -angle de rotation en degré a appliquer entre 2 copies. - -=item B<-copytag> => - -ajout d'un tag indexé pour chaque copie. - -=item B<-params> => \%zinc_attr - -Paramétrage specialises de chaque copie - - -=back - -=back - -Z<> - -=item B(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. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - identifiant de l'item group parent. - -=back - -=item B : - -=over - -=item B<-coords> => [[x0,y0],[x1,y1]] - - coordonnées haut-gauche et bas-droite de la BoundingBox du tabBox. - -=item B<-numpages> - - nombre de pages du TabBox. - -=item B<-anchor> => 'n'|'e'|'s'|'w' - -ancrage nord, est, sud ou ouest des onglets (par défaut 'n') - -=item B<-alignment> => 'left'|'center'|'right' - -alignement gauche, centré ou droit des onglets sur l'ancrage (par défaut left) - -=item B<-tabwidth> => 'auto'|| - -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'). - -=item B<-tabheight> => 'auto'| - -hauteur des onglets (par défaut 'auto') - -=item B<-tabshift> => 'auto'| - -offset de biseau entre la base et le haut de l'onglet (par défaut 'auto'). - -=item B<-overlap> => 'auto'| - -offset de décalage entre 2 onglets (par défaut 'auto'). - -=item B<-radius> - - rayon des arrondis d'angle des onglets. (par défaut 0) - -=item B<-corners> - - liste d'application du raccord aux angles sous forme booleenne -0 = sans raccord 1 = avec raccord. - -=item B<-params> => \%zinc_attr - - parametres zinc de l'item. - -=item B<-texture> - - ajout d'une texture a l'item. - -=item B<-relief> - - creation d'un relief pour les pages du tabBox. -Invoque la fonction du module Graphics graphicItemRelief() - -=item B<-tabtitles> - - table de hash de définition des titres d'onglets (label, params). - -=item B<-pageitems> - - table d'items 'complémentaire' à réaliser pour chaque page. -provoque un appel récursif de la fonction buildZincItem(). - - -=back - -=back - -=back - -Z<> - -=head2 2. Calculs de formes géométriques complexes - -=over - -=item B(coords, options); - -Retourne les coordonnées (curve) d'un rectangle à coins arrondis - -=over - -=item B : - -=over - -=item B => [[x0,y0],[x1,y1]] - - coordonnées haut-gauche et bas-droite du rectangle. - -=back - -=item B : - -=over - -=item B<-radius> - - rayon de raccord circulaire des angles. - -=item B<-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]). - -=back - -=back - -Z<> - -=item B(coords, options); - -Retourne les coordonnées (curve) d'un hippodrome - -=over - -=item B : - -=over - -=item B => [[x0,y0],[x1,y1]] - - coordonnées haut-gauche et bas-droite du rectangle exinscrit à l'hippodrome. - -=back - -=item B : - -=over - -=item B<-orientation> => - -orientation forcée de l'hippodrome (sinon hauteur = plus petit coté). - -=item B<-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]). - -=item B<-trunc> => - -troncatures des cotés circulaires de l'hippodrome. - -=back - -=back - -Z<> - -=item B(coords, options); - -Retourne les coordonnées (curve) d'une ellipse - -=over - -=item B : - -=over - -=item B => [[x0,y0],[x1,y1]] - - coordonnées haut-gauche et bas-droite du rectangle exinscrit. - -=back - -=item B : - -=over - -=item B<-corners> => \@cornersList - -Liste de réalisation des quadrants [0 = angle droit| 1 = raccord d'ellipse]. -(par défaut [1,1,1,1]). - -=back - -=back - -Z<> - -=item B(coords, options); - -Retourne les coordonnées d'une curve à coins arrondis. - -=over - -=item B : - -=over - -=item B => [[x0,y0],...[xn,yn]] - - coordonnées de la curve - -=back - -=item B : - -=over - -B<-radius> : -rayon de raccord des angles. par defaut 0 - -B<-corners> : -liste d'application du raccord circulaire aux angles sous forme booleenne -0 = sans raccord 1 = avec raccord. par defaut [1,1,...,1]. - -=back - -=back - -Z<> - -=item B(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 - -=over - -=item B : - -=over - -=item B => [x0,y0] - - coordonnées du centre du cercle exinscrit au polygone/étoile - -=back - -=item B : - -=over - -B<-numsides> : nombre de cote du polygone ou nombre de branches de l'etoile - -B<-radius> : rayon du cercle exinscrit au polygone - -B<-startangle> : angle de depart du trace de la figure - -B<-inner_radius> : rayon du cercle des points 'internes' de l'etoile - -B<-corner_radius> : rayon des raccords d'angles - -B<-corners> : liste d'application du raccord aux angles sous forme booleenne -0 = sans raccord 1 = avec raccord. par defaut [1,1,1,1]. - -=back - -=back - -Z<> - -=item B(coords, options); - -Retourne les coordonnées d'une polyline, ligne 'brisée' multi-segments -avec raccords angulaires optionnels. - -=over - -=item B : - -=over - -=item B => [[x0,y0],...[xn,yn]] - - liste de coordonnées des sommets de la polyline - -=back - -=item B : - -=over - -B<-radius> : -rayon global de raccord des angles. par defaut 0 - -B<-corners> : -liste d'application du raccord circulaire aux angles sous forme booleenne -0 = sans raccord 1 = avec raccord. par defaut [1,1,...,1]. - -B<-corners_radius> : -Liste des rayons de raccord des angles. - -=back - -=back - -Z<> - -=item B(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...) - -=over - -=item B : - -=over - -=item B => [[x0,y0],...[xn,yn]] - - coordonnées de la curve - -=back - -=item B : - -=over - -B<-width> : -épaisseur de la ligne. par defaut 1 - -B<-linecap> : <'butt'|'round'|'square'> -Forme des extrémités des tracés ouverts. - -B<-linejoin> : <'miter'|'round'|'bevel'> -Forme des sommets des tracés. - -B<-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) - -B<-dashoffset> : -distance décalage de départ dans le dessin du tireté (par défaut 0) - -=back - -=back - -Z<> - -=item B(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). - -=over - -=item B : - -=over - -=item B => [[x0,y0],...[xn,yn]] - - liste de coordonnées du path - -=back - -=item B : - -=over - -B<-closed> : -fermeture du tracé. par defaut 0 - -B<-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'. - -B<-width> : -Largeur du décalage de ligne (par défaut 2). - -=back - -=back - -Z<> - -=item B(coords, %options); - -retourne les coordonnées curve de 'décalage' par rapport à un path donné. - -=over - -=item B : - -=over - -=item B => [[x0,y0],...[xn,yn]] - - liste de coordonnées du path - -=back - -=item B : - -=over - -B<-closed> : -fermeture du tracé. par defaut 0 - -B<-shifting> : <'out'|'in'> -sens de décalage du path : 'out' (décalage externe) 'in' (décalage interne) par défaut 'out'. - -B<-width> : -Largeur du décalage de ligne (par défaut 1). - -=back - -=back - -Z<> - -=item B(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. - -=over - -=item B : - -=over - -=item B => [[x0,y0],[x1,y1]] - - coordonnées haut-gauche et bas-droite de la BoundingBox du tabBox. - -=back - -=item B : - -=over - -B<-numpages> : nombre de pages du TabBox. - -B<-anchor> : <'n'|'e'|'s'|'w'> ancrage nord, est, sud ou ouest des onglets (par défaut 'n') - -B<-alignment> : <'left'|'center'|'right'> alignement gauche, centré ou droit des onglets sur l'ancrage (par défaut left) - -B<-tabwidth> : 'auto'| 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'). - -B<-tabheight> : 'auto'| hauteur des onglets (par défaut 'auto') - -B<-tabshift> : 'auto' offset de biseau entre la base et le haut de l'onglet (par défaut 'auto'). - -B<-overlap> : 'auto' offset de décalage entre 2 onglets (par défaut 'auto'). - -B<-radius> : -rayon des arrondis d'angle des onglets. (par défaut 0) - -B<-corners> : liste d'application du raccord aux angles sous forme booleenne -0 = sans raccord 1 = avec raccord. - -=back - -=back - -=back - -Z<> - -=head2 3. Création de reliefs et ombre portée - -Z<> - -=over - -=item B(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é). - -=over - -=item B : - -=over - -=item B - -identifiant du widget zinc. - -=item B - -identifiant de l'item zinc à mettre en relief. - -=back - -=item B : - -=over - -B<-closed> : fermeture (de forme) du relief (par défaut 1). - -B<-profil> : <'flat'|'rounded'> type de profil du relief (par défaut 'rounded'). - -B<-relief> : <'raised'|'sunken'> sens de l'embossage (par defaut 'raised'). - -B<-side> : position externe ou interne du relief (defaut 'inside'). - -B<-color> : couleur de base du relief (défaut couleur dominante de l'item). - -B<-smoothed> : lissage des 'facettes' du relief (par defaut 1). - -B<-lightangle> : angle de la lumiere (par defaut attribut -lightangle du widget). - -B<-width> : largeur du 'contour' relief. - -B<-fine> : mode precision courbe de bezier (par defaut 0 : auto-ajustee). - -=back - -=back - -Z<> - -=item B(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. - -=over - -B : - -=over - -B : identifiant du widget zinc - -B : identifiant de l'item zinc - -=back - -B : - -=over - -B<-opacity> : poucentage d'opacite de l'ombre (par defaut 50). - -B<-distance> : distance de projection de l'ombre (par defaut 10). - -B<-enlarging> : 'grossissement' cone de projection (defaut 0). - -B<-color> : couleur de l'ombre (par defaut black). - -B<-lightangle> : angle de la lumiere (par defaut attribut -lightangle du widget). - -B<-width> : largeur du perimetre de diffusion/diffraction (par defaut 4). - -=back - -=back - -=back - -Z<> - -=head2 4. Fonctions géométriques de base - -Z<> - -=over - -=item B(point, line); - -retourne les coordonnées du point perpendiculaire abaissé d'un point sur une ligne. - -=over - -=item B : - -=over - -=item B => [x, y] - - coordonnées du point de référence. - -=item B => [[x0, y0],[x1, y1]] - - liste de coordonnées des deux points de la ligne de référence. - -=back - -=back - -Z<> - - -=item B(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. - -=over - -=item B : - -=over - -=item B => [x, y] - - coordonnées du point de départ du segment (ou centre de référence). - -=item B => [x, y] - - coordonnées du point de fin du segment (ou point 'circulaire' de référence). - -=back - -=back - -Z<> - -=item B(startpoint, endpoint); - -retourne la valeur d'angle perpendiculaire à un vecteur (utilisée par exemple -pour mesurer l'incidence de lumière d'une facette). - -=over - -=item B : - -=over - -=item B => [x, y] - - coordonnées du point de départ du segment (ou centre de référence). - -=item B => [x, y] - - coordonnées du point de fin du segment (ou point 'circulaire' de référence). - -=back - -=back - -Z<> - -=item B(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. - -=over - -=item B : - -=over - -=item B => [x, y] - - coordonnées du premier point de définition de l'angle. - -=item B => [x, y] - - coordonnées du deuxième point de définition de l'angle (sommet). - -=item B => [x, y] - - coordonnées du troisième point de définition de l'angle. - - -=back - -=back - -Z<> - -=item B(center, radius, %options); - -Calcul des points constitutifs d'un arc - -=over - -=item B : - -=over - -=item B
=> [x0,y0] - - coordonnées du centre de l'arc. - -=item B - - rayon de l'arc. - -=back - -=item B : - -=over - -=item B<-angle> - - angle de départ (en degré) de l'arc (par défaut 0) - -=item B<-extent> - - delta angulaire (en degré) de l'arc (par défaut 360) - -=item B<-step> - - pas de progression angulaire (en degré) de calcul des points (par défaut 10). - -=back - -=back - -Z<> - -=item B(center, radius, angle); - -Retourne le point circulaire défini par centre-rayon-angle. - -=over - -=item B : - -=over - -=item B
=> [x0,y0] - - coordonnées du centre de l'arc. - -=item B - - rayon de l'arc. - -=item B - - angle (en degré) du point de circonférence avec le centre du cercle. - -=back - -=back - -Z<> - -=item B(coords, %options); - -Calcul d'une approximation de segment (Quadratique ou Cubique) de bezier. - -=over - -=item B : - -=over - -=item B - - Liste de coordonnées des points définissant le segment de bezier. - -=back - -=item B : - -=over - -=item B<-tunits> - - nombre pas de division des segments bezier (par défaut 20) - -=item B<-skipend> - - ne pas retourner le dernier point du segment (pour chaînage de segments). - -=back - -=back - -Z<> - -=item B(t, coords); - -Calcul d'un point du segment (Quadratique ou Cubique) de bezier. -t représentation du temps (de 0 à 1). -coords = (P1, 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 : 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 - -=over - -=item B : - -=over - -=item B - - (de 0 à 1) représentation du temps. - -=item B - - Liste de coordonnées des points définissant le segment de bezier. - -=back - -=back - -Z<> - - -=item B(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). - -=over - -=item B : - -=over - -=item B - - Liste de coordonnées des points définissant le segment de bezier. - -=back - -=item B : - -=over - -=item B<-precision> - - seuil limite du calcul d'approche de la courbe (par défaut .2) - -=item B<-skipend> - - ne pas retourner le dernier point du segment (pour chaînage de segments). - -=back - -=back - -=back - -Z<> - -=head2 5. Gestion des ressources images - -Z<> - -=over - -=item B(filename, %options); - -retourne et partage la ressource image bitmap en l'initialisant et la stockant si première utilisation. - -=over - -=item B : - -=over - -=item B - - non du fichier bitmap pattern - -=back - -=item B : - -=over - -=item B<-storage> - - référence de la table de stockage privée des patterns. - -=back - -=back - -Z<> - -=item B(widget, filename, %options); - -retourne et partage la ressource image texture en l'initialisant et la stockant si première utilisation. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - non du fichier image texture - -=back - -=item B : - -=over - -=item B<-storage> - - référence de la table de stockage privée des textures. - -=back - -=back - -Z<> - -=item B(widget, filename, %options); - -retourne et partage la ressource image en l'initialisant et la stockant si première utilisation. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - non du fichier image - -=back - -=item B : - -=over - -=item B<-storage> - - référence de la table de stockage privée des images. - -=back - -=back - -Z<> - -=item B(widget, filenames, %options); - -Initialise et stocke un ensemble d'images. - -=over - -=item B : - -=over - -=item B - - identifiant du widget zinc. - -=item B - - Liste des fichier images à initialiser. - -=back - -=item B : - -=over - -=item B<-storage> - - référence de la table de stockage privée des images. - -=back - -=back - -=back - -Z<> - -=head2 6. Gestion des couleurs - -Z<> - -=over - -=item B(widget, gradients); - -Création de gradiants nommés Zinc - -=over - -=item B : - -=over - -=item B - - identifiant du widget Zinc - -=item B - - référence de la table de définition des gradiants zinc ('non' => 'zincGradient'). - -=back - -=back - -Z<> - -=item B(widget, item); - -retourne la couleur dominante d'un item ('barycentre' gradiant fillcolor). - -=over - -=item B : - -=over - -=item B - - identifiant du widget Zinc - -=item B - - identifiant de l'item zinc. - -=back - -=back - -Z<> - -=item B(color1, color2, rate); - -calcul d'une couleur intermédiaire défini par un ratio ($rate) entre 2 couleurs. - -=over - -=item B : - -=over - -=item B - - première couleur - -=item B - - première couleur - -=item B - - (de 0 à 1) position de la couleur intermédiaire. - -=back - -=back - -Z<> - -=item B(widget, steps, refcolors, repeat); - -création d'un jeu de couleurs intermédiaires (dégradé) entre n couleurs. - -=over - -=item B : - -=over - -=item B - - identifiant du widget Zinc - -=item B - - nombre totale de couleurs retournées. - -=item B - - liste de couleurs servant à créer le dégradé. - -=item B - - 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). - -=back - -=back - -Z<> - -=item B(color, newL); - -Modification d'une couleur par sa composante luminosité (exemple relief). - -=over - -=item B : - -=over - -=item B - - couleur au format zinc. - -=item B - - (de 0 à 1) nouvelle valeur de luminosité. - -=back - -=back - -Z<> - -=item B(zncolor); - -conversion d'une couleur Zinc hexa au format RGBA (255,255,255,100). - -=over - -=item B : - -=over - -=item B - - couleur au format hexa zinc (#ffffff ou #ffffffffffff). - -=back - -=back - -Z<> - -=item B(r, g, b); - -conversion d'une couleur de l'espace RGB à l'espace CIE LCH°. - -=over - -=item B : - -=over - -=item B - - (de 0 à 1) valeur de la composante rouge de la couleur RGB. - -=item B - - (de 0 à 1) valeur de la composante verte de la couleur RGB. - -=item B - - (de 0 à 1) valeur de la composante bleue de la couleur RGB. - -=back - -=back - -Z<> - -=item B(L, C, H); - -conversion d'une couleur de l'espace CIE LCH° à l'espace RGB. - -=over - -=item B : - -=over - -=item B - - (de 0 à 1) valeur de la composante luminosité de la couleur CIE LCH. - -=item B - -C : (de 0 à 1) valeur de la composante saturation de la couleur CIE LCH - -=item B - -H : (de 0 à 1) valeur de la composante teinte de la couleur CIE LCH - -=back - -=back - -Z<> - -=item B(r, g, b); - -conversion d'une couleur de l'espace RGB à l'espace HLS. - -=over - -=item B : - -=over - -=item B - - (de 0 à 1) valeur de la composante rouge de la couleur RGB. - -=item B - - (de 0 à 1) valeur de la composante verte de la couleur RGB. - -=item B - - (de 0 à 1) valeur de la composante bleue de la couleur RGB. - -=back - -=back - -Z<> - -=item B(H, L, S); - -conversion d'une couleur de l'espace HLS à l'espace RGB. - -=over - -=item B : - -=over - -=item B - - (de 0 à 1) valeur de la composante teinte de la couleur HLS. - -=item B - -C : (de 0 à 1) valeur de la composante luminosité de la couleur HLS. - -=item B - -H : (de 0 à 1) valeur de la composante saturation de la couleur HLS. - -=back - -=back - -Z<> - -=item B(r, g, b, a); - -conversion d'une couleur RGBA (255,255,255,100) au format Zinc '#ffffff'. - -=over - -=item B : - -=over - -=item B - - (0 à 255) composante rouge de la couleur rgba. - -=item B - - (0 à 255) composante verte de la couleur rgba. - -=item B - - (0 à 255) composante bleue de la couleur rgba. - -=item B - - (0 à 255) composante alpha de la couleur rgba. - -=back - -=back - -Z<> - -=back - -Z<> - - -=head1 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); - -=head1 AUTEURS - -Jean-Luc Vinot -- cgit v1.1