1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| PROCEDURE Point_sur_serie_axe_secondaire(sNom_Graphe,sNom_Champ_Destination,nNo_Serie,nNb_valeur,sType_Point,nPoint_Taille,nPoint_Couleur_fond,nPoint_Couleur_Trait,sNom_Image,nAxeYMinSec,nAxeYMaxSec,nNo_Serie_principale)
i est un entier
nPoint_x, nPoint_y sont des entiers
nAxeYMin est un entier = {sNom_Champ_Destination}..AxeYMin
nAxeYMax est un entier = {sNom_Champ_Destination}..AxeYMax
// détermine les valeur mini et maxi de la série sur l'axe Y principal
nSP_Mini est un entier = 1
xSPV_Mini est un numérique = {sNom_Champ_Destination}[nNo_Serie_principale,1]
nSP_Maxi est un entier = 1
xSPV_Maxi est un numérique = {sNom_Champ_Destination}[nNo_Serie_principale,1]
POUR i = 2 _A_ nNb_valeur
SI {sNom_Champ_Destination}[nNo_Serie_principale,i] < xSPV_Mini ALORS
nSP_Mini = i
xSPV_Mini = {sNom_Champ_Destination}[nNo_Serie_principale,i]
FIN
SI {sNom_Champ_Destination}[nNo_Serie_principale,i] < xSPV_Mini ALORS
nSP_Maxi = i
xSPV_Maxi = {sNom_Champ_Destination}[nNo_Serie_principale,i]
FIN
FIN
// coordonnée Y des points mini et maxi de la série principale
nPoint_SP_x_Mini est un entier = grInfoPoint(""+sNom_Graphe+"",grYCoordinate,nNo_Serie_principale,nSP_Mini)
nPoint_SP_x_Maxi est un entier = grInfoPoint(""+sNom_Graphe+"",grYCoordinate,nNo_Serie_principale,nSP_Maxi)
// calcul de la marge haute et du coef de conversion
xCoef est un numérique = (nPoint_SP_x_Maxi - nPoint_SP_x_Mini) / (xSPV_Maxi - xSPV_Mini)
nMarge_Haut est un entier = nPoint_SP_x_Maxi + (nAxeYMax - xSPV_Maxi) * xCoef
xCoef = xCoef * (nAxeYMax - nAxeYMin) / (nAxeYMaxSec - nAxeYMinSec)
// pour le type de point "Triangle"
nPoint_Hauteur est un entier = Racine(Puissance(nPoint_Taille,2)-Puissance(nPoint_Taille/2,2))
// pour le type de point "Image"
nLargeur_image est un entier
nHauteur_image est un entier
SI sNom_Image <> "" ALORS
nLargeur_image = {sNom_Image}..Largeur
nHauteur_image = {sNom_Image}..Hauteur
FIN
dDébutDessin({sNom_Champ_Destination},dSurGraphe)
POUR i = 1 _A_ nNb_valeur
nPoint_x = grInfoPoint(""+sNom_Graphe+"",grXCoordinate,nNo_Serie,i)
nPoint_y = nMarge_Haut - (nAxeYMaxSec - {sNom_Champ_Destination}[nNo_Serie,i]) * xCoef
SELON Majuscule(sType_Point)
CAS "CERCLE"
dCercle(nPoint_x-(nPoint_Taille/2),nPoint_y-(nPoint_Taille/2),nPoint_x+(nPoint_Taille/2),nPoint_y+(nPoint_Taille/2),nPoint_Couleur_fond,nPoint_Couleur_Trait)
CAS "TRIANGLE"
dPolygone(3,nPoint_x-(nPoint_Taille/2),nPoint_y+(nPoint_Hauteur/2),nPoint_x+(nPoint_Taille/2),nPoint_y+(nPoint_Hauteur/2),nPoint_x,nPoint_y-(nPoint_Hauteur/2),nPoint_Couleur_fond,nPoint_Couleur_Trait)
CAS "CARRE"
dRectangle(nPoint_x-(nPoint_Taille/2),nPoint_y-(nPoint_Taille/2),nPoint_x+(nPoint_Taille/2),nPoint_y+(nPoint_Taille/2),nPoint_Couleur_fond,nPoint_Couleur_Trait)
CAS "IMAGE"
dCopieImage({sNom_Image},{sNom_Graphe},copieImage,0,0,nLargeur_image,nHauteur_image,nPoint_x-(nLargeur_image/2),nPoint_y-(nHauteur_image/2),nLargeur_image,nHauteur_image)
FIN
FIN
SI sNom_Image <> "" ALORS
grDessine({sNom_Champ_Destination}) |
Partager