@@ -65,8 +65,10 @@ discard block |
||
| 65 | 65 | $bords = array_fill(0, $bord_lenght, array()); // building this array |
| 66 | 66 | |
| 67 | 67 | /* adding the first point of the polygone */ |
| 68 | - if (is_array($bords[$poly[0]['y']])) //avoid warning |
|
| 68 | + if (is_array($bords[$poly[0]['y']])) { |
|
| 69 | + //avoid warning |
|
| 69 | 70 | array_push($bords[$poly[0]['y']], $poly[0]['x']); |
| 71 | + } |
|
| 70 | 72 | |
| 71 | 73 | $i = 1; // we re-use $i and $old_pente bellow the loop |
| 72 | 74 | $old_pente=0; |
@@ -75,11 +77,14 @@ discard block |
||
| 75 | 77 | |
| 76 | 78 | /* special cases */ |
| 77 | 79 | if ($poly[$i-1]['y'] == $poly[$i]['y']) { |
| 78 | - if ($poly[$i-1]['x'] == $poly[$i]['x']) |
|
| 79 | - continue; // twice the same point |
|
| 80 | + if ($poly[$i-1]['x'] == $poly[$i]['x']) { |
|
| 81 | + continue; |
|
| 82 | + } |
|
| 83 | + // twice the same point |
|
| 80 | 84 | else { // infinite elevation of the edge |
| 81 | - if (is_array($bords[$poly[$i]['y']])) |
|
| 82 | - array_push($bords[$poly[$i]['y']],$poly[$i]['x']); |
|
| 85 | + if (is_array($bords[$poly[$i]['y']])) { |
|
| 86 | + array_push($bords[$poly[$i]['y']],$poly[$i]['x']); |
|
| 87 | + } |
|
| 83 | 88 | $old_pente=0; |
| 84 | 89 | continue; |
| 85 | 90 | } |
@@ -87,9 +92,13 @@ discard block |
||
| 87 | 92 | |
| 88 | 93 | //echo 'point:'.$poly[$i]['y']; bug here |
| 89 | 94 | // adding the point as a part of an edge |
| 90 | - if (is_array($bords[$poly[$i]['y']])) //avoid warning |
|
| 95 | + if (is_array($bords[$poly[$i]['y']])) { |
|
| 96 | + //avoid warning |
|
| 91 | 97 | array_push($bords[$poly[$i]['y']], $poly[$i]['x']); |
| 92 | - if (DEBUG) echo '('.$poly[$i]['x'].';'.$poly[$i]['y'].') '; |
|
| 98 | + } |
|
| 99 | + if (DEBUG) { |
|
| 100 | + echo '('.$poly[$i]['x'].';'.$poly[$i]['y'].') '; |
|
| 101 | + } |
|
| 93 | 102 | |
| 94 | 103 | /* computing the elevation of the edge going */ |
| 95 | 104 | // from $poly[$i-1] to $poly[$i] |
@@ -99,15 +108,17 @@ discard block |
||
| 99 | 108 | // if the sign of the elevation change from the one of the |
| 100 | 109 | // previous edge, the point must be added a second time inside |
| 101 | 110 | // $bords |
| 102 | - if ($i>1) |
|
| 103 | - if (($old_pente<0 && $pente>0) |
|
| 111 | + if ($i>1) { |
|
| 112 | + if (($old_pente<0 && $pente>0) |
|
| 104 | 113 | || ($old_pente>0 && $pente<0)) { |
| 105 | 114 | if (is_array($bords[$poly[$i]['y']])) //avoid warning |
| 106 | 115 | array_push($bords[$poly[$i]['y']],$poly[$i]['x']); |
| 116 | + } |
|
| 107 | 117 | |
| 108 | - if (DEBUG) |
|
| 109 | - echo '*('.$poly[$i]['x']. |
|
| 118 | + if (DEBUG) { |
|
| 119 | + echo '*('.$poly[$i]['x']. |
|
| 110 | 120 | ';'.$poly[$i]['y'].') '; |
| 121 | + } |
|
| 111 | 122 | } |
| 112 | 123 | |
| 113 | 124 | /* detect the direction of the elevation in Y */ |
@@ -136,10 +147,11 @@ discard block |
||
| 136 | 147 | |
| 137 | 148 | // elevation between $poly[0]['x'] and $poly[1]['x']) |
| 138 | 149 | $rest = $poly[0]['y']-$poly[1]['y']; |
| 139 | - if ($rest!=0) |
|
| 140 | - $pente1 = ($poly[0]['x']-$poly[1]['x'])/($rest); |
|
| 141 | - else |
|
| 142 | - $pente1 = 0; |
|
| 150 | + if ($rest!=0) { |
|
| 151 | + $pente1 = ($poly[0]['x']-$poly[1]['x'])/($rest); |
|
| 152 | + } else { |
|
| 153 | + $pente1 = 0; |
|
| 154 | + } |
|
| 143 | 155 | |
| 144 | 156 | // elevation between $poly[$i-1]['x'] and $poly[0]['x']) |
| 145 | 157 | $pente = ($poly[$i-1]['x']-$poly[0]['x'])/ |
@@ -151,14 +163,17 @@ discard block |
||
| 151 | 163 | |
| 152 | 164 | // doubling the first point if needed (see above) |
| 153 | 165 | if (($pente1<0 && $pente>0) || ($pente1>0 && $pente<0)) { |
| 154 | - if (is_array($bords[$poly[$i - 1]['y']])) |
|
| 155 | - array_push($bords[$poly[$i - 1]['y']], round($poly[$i - 1]['x'])); |
|
| 166 | + if (is_array($bords[$poly[$i - 1]['y']])) { |
|
| 167 | + array_push($bords[$poly[$i - 1]['y']], round($poly[$i - 1]['x'])); |
|
| 168 | + } |
|
| 156 | 169 | //if (DEBUG) echo '('.$poly[$i-1]['x'].';'.$poly[$i-1]['y'].') '; |
| 157 | 170 | } |
| 158 | 171 | // doubling the last point if neededd |
| 159 | 172 | if (($old_pente<0 && $pente>0) || ($old_pente>0 && $pente<0)) { |
| 160 | - if (is_array($bords[$poly[$i-1]['y']])) //avoid warning |
|
| 173 | + if (is_array($bords[$poly[$i-1]['y']])) { |
|
| 174 | + //avoid warning |
|
| 161 | 175 | array_push($bords[$poly[$i-1]['y']], round($poly[$i-1]['x'])); |
| 176 | + } |
|
| 162 | 177 | //if (DEBUG) echo '*('.$poly[$i-1]['x'].';'.$poly[$i-1]['y'].') '; |
| 163 | 178 | } |
| 164 | 179 | |
@@ -227,11 +242,13 @@ discard block |
||
| 227 | 242 | $s = "<div style='font-size: 8px; line-height:3px'><pre>\n"; |
| 228 | 243 | } |
| 229 | 244 | for ($i=0; $i<$max['y']; $i++) { |
| 230 | - for($j=0; $j<$max['x']; $j++) |
|
| 231 | - if($poly[$j][$i] == TRUE) |
|
| 245 | + for($j=0; $j<$max['x']; $j++) { |
|
| 246 | + if($poly[$j][$i] == TRUE) |
|
| 232 | 247 | $s .= ($format=='html'?"<b>1</b>":'1'); |
| 233 | - else |
|
| 234 | - $s .= "0"; |
|
| 248 | + } |
|
| 249 | + else { |
|
| 250 | + $s .= "0"; |
|
| 251 | + } |
|
| 235 | 252 | $s .= ($format=='html'?"<br />\n":"\n"); |
| 236 | 253 | } |
| 237 | 254 | $s .= ($format=='html'?"</pre></div>\n":"\n"); |
@@ -252,15 +269,19 @@ discard block |
||
| 252 | 269 | $surfaceOf1 = 0; |
| 253 | 270 | $surfaceOf2 = 0; |
| 254 | 271 | |
| 255 | - for ($i=0; $i<$max['x']; $i++) |
|
| 256 | - for($j=0; $j<$max['y']; $j++) { |
|
| 272 | + for ($i=0; $i<$max['x']; $i++) { |
|
| 273 | + for($j=0; |
|
| 274 | + } |
|
| 275 | + $j<$max['y']; $j++) { |
|
| 257 | 276 | if (isset($poly1[$i][$j]) && ($poly1[$i][$j] == TRUE)) { |
| 258 | 277 | $surfaceOf1++; |
| 259 | - if (isset($poly2[$i][$j]) && ($poly2[$i][$j] == FALSE)) |
|
| 260 | - $onlyIn1++; |
|
| 278 | + if (isset($poly2[$i][$j]) && ($poly2[$i][$j] == FALSE)) { |
|
| 279 | + $onlyIn1++; |
|
| 280 | + } |
|
| 281 | + } |
|
| 282 | + if (isset($poly2[$i][$j]) && ($poly2[$i][$j] == TRUE)) { |
|
| 283 | + $surfaceOf2++; |
|
| 261 | 284 | } |
| 262 | - if (isset($poly2[$i][$j]) && ($poly2[$i][$j] == TRUE)) |
|
| 263 | - $surfaceOf2++; |
|
| 264 | 285 | } |
| 265 | 286 | |
| 266 | 287 | return array ( |