Subversion Repositories Applications.projet

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 ddelon 1
<?
2
/* 	*****************************  classe arbre  ***********************************
3
*	class permettant la creation d'un arbre, elle est fonctionnelle en tant que module
4
*	de gsite (www.gsite.org).
5
*	L'arbre peut servir de representation graphique de donnees statistiques.
6
*	Copyright 2001 Tela Botanica
7
*	Auteurs : Daniel Mathieu, Nicolas Touillaud, Alexandre Granier
8
*	Cette bibliothèque est libre, vous pouvez la redistribuer et/ou la modifier
9
*	selon les termes de la Licence Publique Générale GNU publiée par la
10
*	Free Software Foundation.
11
*	Cette bibliothèque est distribuée car potentiellement utile, mais SANS
12
*	AUCUNE GARANTIE, ni explicite ni implicite, y compris les garanties de
13
*	commercialisation ou d'adaptation dans un but spécifique.
14
*
15
************************************************************************************/
16
 
17
  include('php/frame/arbre/tailles.php3');
18
 
19
 //recuperation des noms de table
20
 
21
 $nom_table_index = "AGORA" ;
22
 $nom_table_tela = "AGO_TELA_BOTANICAE" ;
23
 
24
 global $GS_GLOBAL ;
25
 
26
 mysql_select_db($GS_GLOBAL['mysql_db'],$GS_GLOBAL['link']) ;
27
 
28
 $tables = mysql_query("select AGO_A_NOMGRP from agora where ((AGO_A_VISIBLE=1) and (AGO_A_NOMGRP <> \"tela-botanicae\"))");
29
 $nbtables_dessin = mysql_num_rows($tables);
30
 mysql_free_result($tables);
31
 $hauteur=$yfait;
32
 //verification si il y a des listes a afficher
33
 if ($nbtables_dessin==""):{$nbdroite=0;}
34
 else : {$nbdroite=(round($nbtables_dessin/2))+1;}
35
 endif;
36
 
37
 
38
function calc_xref_branche($xres_,$xfeuille_, $xtronc_)
39
 //calcule la taille de reference des branches
40
 {
41
  //global $xres, $xfeuille, $xtronc;
42
  $toto=round(($xres_-$xtronc_-(2*$xfeuille_))/2);
43
  return $toto;
44
 }
45
 
46
 
47
 
48
 //******************************************************
49
 // calcule l'espace vertical entre 2 branche d'un meme coté: si il n'y a pas la place -> 12 pixels
50
 function calc_esver()
51
 {
52
global $nbdroite ;
53
  if ($nbdroite != 1):
54
  {
55
   global $yres, $yfait, $yracine, $ybranche, $nbdroite;
56
   $toto=($yres-$yfait-$yracine-($nbdroite*$ybranche))/($nbdroite-1);
57
   if($toto<0):{$toto=12;} //on ne se place plus sur 1 ecran mais sur plus
58
   endif;
59
   return $toto;
60
  }
61
  else:{return 0;}
62
  endif;
63
 }
64
 //******************************************************
65
 
66
 $esver=calc_esver();
67
 
68
 //******************************************************
69
 //calcul la position en x de la branche
70
 function calcul_x_branche($adroite,$xreel)
71
 {
72
  global $xres, $xtronc, $xref_branche;
73
  $tempx=($xres+$xtronc)/2-2; //pour un bug
74
  if($adroite != 1):
75
  {
76
   $tempx=$tempx+2-$xtronc-($xreel);
77
  }
78
  endif;
79
  return round($tempx);
80
 }
81
 //******************************************************
82
 
83
 //Il est impératif d'afficher 1 branche d'un coté, puis de l'autre etc..
84
 
85
 //******************************************************
86
 //retourne la position y de la branche (et de la feuille) et met à jour la hauteur de la prochaine branche
87
 function calcul_y_branche()
88
 {
89
  global $esver, $hauteur, $ybranche;
90
  $toto=$hauteur;
91
  $hauteur=$hauteur+(($ybranche+$esver)/2);
92
  return $toto;
93
 }
94
 //******************************************************
95
 
96
 //******************************************************
97
 //retourne la position x du tronc
98
 function x_tronc()
99
 {
100
  global $xtronc, $xres;
101
  return ($xres-$xtronc)/2;
102
 }
103
 //******************************************************
104
 
105
 //******************************************************
106
 //retourne la position y du tronc
107
 function y_tronc()
108
 {
109
  global $yfait;
110
  return ($yfait);
111
 }
112
 //******************************************************
113
 
114
 //******************************************************
115
 // retourne la position x de la racine
116
 function x_racine()
117
 {
118
  global $xracine, $xres;
119
  return ($xres-$xracine)/2;
120
 }
121
 //******************************************************
122
 
123
 //******************************************************
124
 //retourne la taille du tronc en pixels
125
 function taille_tronc()
126
 {
127
  global $nbdroite, $esver, $ybranche;
128
  $toto=($nbdroite-1)*$esver+($nbdroite*$ybranche);
129
  return $toto;
130
 }
131
 //******************************************************
132
 
133
 //******************************************************
134
 //retourne la position x de la feuille en fonction des param de la branche
135
 function calcul_x_feuille($adroite, $pos_branche, $xreel_brch)  //xreel en %
136
 {
137
  global $xref_branche, $xfeuille;
138
  if($adroite !=1):
139
  {
140
   $toto=$pos_branche-$xfeuille;
141
  }
142
  else:
143
  {
144
   $toto=$pos_branche+($xreel_brch);
145
  }
146
  endif;
147
  return $toto;
148
 }
149
 //******************************************************
150
 
151
 //******************************************************
152
 // retourne la position y de la racine
153
 function y_racine()
154
 {
155
  global $yfait;
156
  $toto=$yfait+taille_tronc();
157
  return $toto;
158
 }
159
 //******************************************************
160
 
161
 
162
 //******************************************************
163
 //met 1 à 0 et inversement
164
 function dg($dte)
165
 {
166
  if($dte==1):{return 0;}
167
  else:{return 1;}
168
  endif;
169
 }
170
 //******************************************************
171
 
172
 //******************************************************
173
 //une fonction qui prend le % de vert *100 et qui sort la chaine html du vert correspondant
174
 function couleur_f($prc)
175
 {
176
  if ($prc==0) return ("#279C27");
177
  if (($prc>0) && ($prc<=16)) return ("#279C27");
178
  if (($prc>16) && ($prc<=32)) return ("#CCCC00");
179
  if (($prc>32) && ($prc<=48)) return ("#FFCC00");
180
  if (($prc>48) && ($prc<=64)) return ("#DD8D22");
181
  if (($prc>64) && ($prc<=80)) {
182
  			return "#FF6600" ;
183
			} else {
184
			return "#CC3300" ;
185
			}
186
}
187
//*****************************************************
188
 
189
//une fonction qui détermine si un entier est pair ou non
190
function est_pair($un_entier)
191
{
192
 return(($un_entier %2)==0);
193
}
194
 
195
?>