Walls.php source code
Contents of file
yurtparts/Walls.php
1
<?php
2 // Software released under the General Public License (version 2 or later), available at
3 // http://www.gnu.org/copyleft/gpl.html
4 //********************************************************************************
5 /**
6 Calcul du treillis
7
8 @version 1.0
9 @license GPL
10 @author Thierry Graff
11 @weblink http://www.tig12.net
12 @php PHP5
13 @history 2007.05.07, 11h46 : Creation
14 @history 2007.06.12 : transformation to a class
15 ****************************************************************************************/
16 require_once(dirname(dirname(__FILE__)) . '/YurtPart.php');
17
18 class Walls extends YurtPart{
19
20 public function toHtml($params=''){
21 // Valeurs importées
22 $D = $this->yurt->getConfig('general', 'D'); // diamètre de la yourte, en mètres
23 $h = $this->yurt->getConfig('general', 'h'); // hauteur de la yourte, en mètres
24 $np = $this->yurt->getConfig('general', 'np'); // nombre de perches
25 //
26 // Valeurs à fixer à cette étape
27 $h1 = $this->yurt->getConfig('walls', 'h1'); // dépassement en haut, en mètres
28 $h2 = $this->yurt->getConfig('walls','h2'); // dépassement en bas, en mètres
29 $r = $this->yurt->getConfig('walls','r'); // Rayon du cercle fait par le treillis
30 $lt = $this->yurt->getConfig('walls','lt'); // Côté d'un losange, en mètres
31 $nt = $this->yurt->getConfig('walls','nt'); // Nombre de losanges verticaux (doit être un entier)
32 $pst = $this->yurt->getConfig('walls','pst'); // longueur sans treillis, en mètres
33 $cam = $this->yurt->getConfig('walls','cam'); // coût des tasseaux, au mètre.
34
35 // calculs
36 $pdt = 2 * M_PI * $r;
37 $htl = $h - $h1 - $h2;
38 $ht = $pdt / $np;
39 $vt = $htl / $nt;
40 $lt = sqrt(pow($vt, 2) + pow($ht, 2))/2;
41 $alphat = 2 * atan($ht / $vt); // radians
42 $pat = $pdt - $pst;
43 $ltas = 2 * $lt * $nt + ($h1 + $h2)/cos($alphat / 2);
44 $ntas = 2 * $pat / $ht;
45 $ni = floor($ntas * (2*$nt + 1));
46 $lttas = $ntas * $ltas; // longueur totale des tasseaux
47 $coutTasseau = $cam * $ltas;
48 $coutTotal = $cam * $lttas;
49
50 // Affichage des résultats
51 $res = '';
52 $res .= "<table>\n";
53 $res .= "<tr><th colspan='2'>Données de départ</th></tr>\n";
54 $res .= "<tr><td>Diamètre de la yourte</td><td><b>D = " . self::formatMeters($D, 2) . "</b></td></tr>\n";
55 $res .= "<tr><td>Hauteur de la yourte</td><td><b>h = " . self::formatMeters($h, 2) . "</b></td></tr>\n";
56 $res .= "<tr><td>Nombre de perches</td><td><b>np = " . $np . "</b></td></tr>\n";
57 //
58 $res .= "<tr><th colspan='2'>Périmètres</th></tr>\n";
59 $res .= "<tr><td>Périmètre avec treillis</td><td><b>pat = " . self::formatMeters($pat) . "</b></td></tr>\n";
60 $res .= "<tr><td>Périmètre du treillis</td><td><b>pdt = " . self::formatMeters($pdt) . "</b></td></tr>\n";
61 $res .= "<tr><td>Périmètre sans treillis</td><td><b>pst = " . self::formatMeters($pst) . "</b></td></tr>\n";
62 //
63 $res .= "<tr><th colspan='2'>Losanges</th></tr>\n";
64
65 $res .= "<tr><td>Nombre de losanges verticaux</td><td><b>n<sub>t</sub> = " . $nt . "</b></td></tr>\n";
66 $res .= "<tr><td>Dépassement haut</td><td><b>h<sub>1</sub> = " . self::m2cm($h1) . " cm</b></td></tr>\n";
67 $res .= "<tr><td>Dépassement bas</td><td><b>h<sub>2</sub> = " . self::m2cm($h2) . " cm</b></td></tr>\n";
68 $res .= "<tr><td>Hauteur de n<sub>t</sub> losanges</td><td><b>h<sub>tl</sub> = " . self::formatMeters($htl) . "</b></td></tr>\n";
69 $res .= "<tr><td>Largeur d'un losange</td><td><b>h<sub>t</sub> = " . self::m2cm(round($ht, 3)) . " cm</b></td></tr>\n";
70 $res .= "<tr><td>Hauteur d'un losange</td><td><b>v<sub>t</sub> = " . self::m2cm(round($vt, 3)) . " cm</b></td></tr>\n";
71 $res .= "<tr><td>Longueur du côté d'un losange</td><td><b>l<sub>t</sub> = " . self::m2cm(round($lt, 3)) . " cm</b></td></tr>\n";
72 $res .= "<tr><td>Angle d'un losange</td><td><b>α<sub>t</sub> = " . round($alphat*180/M_PI) . "°</b></td></tr>\n";
73 //
74 $res .= "<tr><th colspan='2'>Tasseaux</th></tr>\n";
75 $res .= "<tr><td>Nombre de tasseaux</td><td><b>n<sub>tas</sub> = " . round($ntas, 2) . "</b></td></tr>\n";
76 $res .= "<tr><td>Nombre d'intersections</td><td><b>n<sub>n</sub> = " . $ni . "</b></td></tr>\n";
77 $res .= "<tr><td>Longueur d'un tasseau</td><td><b>l<sub>tas</sub> = " . self::formatMeters($ltas) . "</b></td></tr>\n";
78 $res .= "<tr><td>Longueur totale de tasseaux</td><td><b>lt<sub>tas</sub> = " . self::formatMeters($lttas) . "</b></td></tr>\n";
79 //
80 $res .= "<tr><th colspan='2'>Coût</th></tr>\n";
81 $res .= "<tr><td>Coût des tasseaux, au mètre</td><td><b>cam = " . $cam . " euros</b></td></tr>\n";
82 $res .= "<tr><td>Coût d'un tasseau</td><td><b>coutTasseau = " . round($coutTasseau, 2) . " euros</b></td></tr>\n";
83 $res .= "<tr><td>Coût total</td><td><b>coutTotal = " . round($coutTotal, 2) . " euros</b></td></tr>\n";
84 $res.= "</table>\n";
85 return $res;
86 }// end toHtml
87
88 }// end class Walls
89 ?>