52 private $mesCouleurs = array(
'red',
'blue',
'orange',
'green',
'grey',
'black',
'DarkMagenta ',
'cyan');
59 $this->hauteurDessin = (real) $hauteur;
60 $this->largeurDessin = (real) $largeur -
$marges*2;
62 $this->sectionClass = &$section;
63 $this->donnees = $lib_data;
65 foreach($this->donnees as $val){
66 if($val > $this->rValMax){
67 $this->rValMax = $val;
80 $droite = round($gauche + $this->largeurDessin);
83 cx.strokeStyle = \"$color\"; 85 cx.moveTo($gauche, $y); 86 cx.lineTo($droite, $y); 96 return round($this->hauteurDessin * (1- 0.9*$val/$this->rValMax), 1)-2;
105 return $this->marges + round(($this->largeurDessin-14) * (1/2 + $Axe*$val/$this->SnXmax), 1)+7;
115 foreach($tabDonnees as $cle=>$valeur){
117 $result[$cle][] = $this->mesCouleurs[$couleur];
132 $diffHautBerge = $mesDonnees[
'rYB'][0];
135 $dessin =
'<canvas id="cvsSection" width="'.($this->largeurDessin+2*
$this->marges).
'" height="'.$this->hauteurDessin.
'"></canvas>';
139 <script type="text/javascript"> 140 var cx = document.getElementById("cvsSection").getContext("2d"); 141 cx.strokeStyle = "black";';
143 $tCoordSn = $this->sectionClass->DessinCoordonnees();
146 $this->SnXmax = max($tCoordSn[
'x'])*2;
149 $LargeurBerge = $this->sectionClass->CalcGeo(
'B')/2;
150 $xBergeGauche = $this->
GetDessinX($LargeurBerge,-1);
151 $xBergeDroite = $this->
GetDessinX($LargeurBerge,1);
155 cx.moveTo($xBergeGauche, 0); 156 cx.lineTo($xBergeGauche, $diffHautBerge); 157 cx.moveTo($xBergeDroite, 0); 158 cx.lineTo($xBergeDroite, $diffHautBerge); 160 cx.setLineDash([]);";
166 for($i=count($tCoordSn[
'x'])-1; $i>=0; $i-=1) {
167 $tSnX[] = $this->
GetDessinX($tCoordSn[
'x'][$i],-1);
168 $tSnY[] = $this->
GetDessinY($tCoordSn[
'y'][$i]);
171 for($i=0; $i<count($tCoordSn[
'x']); $i++) {
172 $tSnX[] = $this->
GetDessinX($tCoordSn[
'x'][$i],1);
173 $tSnY[] = $this->
GetDessinY($tCoordSn[
'y'][$i]);
178 cx.moveTo(%d,%d);',$tSnX[0],$tSnY[0]);
179 for($i=1; $i<count($tSnX); $i++) {
181 cx.lineTo(%d,%d);',$tSnX[$i],$tSnY[$i]);
185 cx.lineWidth = 1.0;';
189 cx.font = "12px sans-serif";';
190 $bDroiteGauche =
true;
192 foreach($mesDonnees as $cle=>$valeur){
194 list($y,$color) = $valeur;
196 $dessin .= $this->
AddRow($color, $y);
199 cx.fillStyle = "'.$color.
'"; 200 cx.textAlign="'.((!$bDroiteGauche)?
'left':
'right').
'";';
201 $x = ($bDroiteGauche)?($this->marges-5):($this->marges+$this->largeurDessin+5);
202 $texte = $cle.
' = '.round($this->donnees[$cle], $this->sectionClass->oP->iPrec);
205 cx.fillText(\"$texte\",$x,$y);";
206 $bDroiteGauche = !$bDroiteGauche;
GetDessinX($val, $Axe)
Convertit une largeur en mètre en une abscisse en pixels.
__construct($hauteur, $largeur, $marges, &$section, $lib_data)
GetDessinY($val)
Convertit un tirant d'eau en mètre en une ordonnée en pixels.
Classe pour l'affichage du dessin des sections.
transformeValeur($tabDonnees)
Transforme le tableau de tirants d"eau et charges à afficher en pixel + attribution des couleurs...
AddRow($color, $y)
Rajoute une ligne à notre dessin.