28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE
28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE
28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Aufgabe</strong> 3<br />
Stefan Hansch, Markus Wirsing, <strong>Matthias</strong> <strong>Springer</strong><br />
227 }<br />
228 else if (currentBestIndex == i + 1)<br />
229 {<br />
230 //printf("[I] Koordinaten von %d nicht geaendert<br />
.\n", i + 1);<br />
231 }<br />
232<br />
233 //printf(" p = %f\n", currentBestProbability);<br />
234 }<br />
235 else<br />
236 {<br />
237 printf("[W] Kein Eintrag in der<br />
Wahrscheinlichkeitstabelle fuer %d gefunden.\n",<br />
db_time[i + 1]);<br />
238<br />
239 // Keine Loesung gefunden<br />
240 // TO-DO: Kann dieser Fall ueberhaupt eintreten?<br />
241 }<br />
242 }<br />
243 }<br />
244<br />
245 // Zeichne Weg<br />
246 printf("Zeichne den Weg auf die Karte. Dieser Vorgang kann einige<br />
Sekunden dauern.\n");<br />
247<br />
248 // Gehe alle Eintraege in der Log-Datenbank durch<br />
249 for (int i = 0; i < db_count_entries - 1; i++)<br />
250 {<br />
251 if (db_time[i + 1] - db_time[i] > 30)<br />
252 {<br />
253 paintLine(db_pos_x[i], db_pos_x[i + 1], db_pos_y[i],<br />
db_pos_y[i + 1], 255, 0, 0);<br />
254 }<br />
255 else<br />
256 {<br />
257 int color_blue = 0;<br />
258 double currentVelocity = ((double)db_calculateDistance(i,<br />
i + 1)) / ((double)(db_time[i + 1] - db_time[i]));<br />
259<br />
260 color_blue = (int)((currentVelocity -<br />
db_average_distance_per_time) /<br />
db_average_distance_per_time * 255.0);<br />
261<br />
262 if (color_blue > 254) color_blue = 254;<br />
263 if (color_blue < -254) color_blue = -254;<br />
264<br />
265 if (color_blue < 0)<br />
266 {<br />
267 paintLine(db_pos_x[i], db_pos_x[i + 1], db_pos_y[i],<br />
db_pos_y[i + 1], 0, 255, color_blue * (-1));<br />
268 }<br />
269 else<br />
270 {<br />
271 paintLine(db_pos_x[i], db_pos_x[i + 1], db_pos_y[i],<br />
db_pos_y[i + 1], color_blue, 255, 0);<br />
272 }<br />
273 }<br />
274 }<br />
275<br />
276 // Speichere Datei im PPM-Format ab<br />
277 FILE * pFileOut = fopen("karte_out.ppm", "w");<br />
278 fprintf(pFileOut, "P6\n#CREATOR: 28_1_bwinf_3\n%d %d\n255\n",<br />
proportions[0], proportions[1]);<br />
279<br />
280 for (int i = 0; i < proportions[1]; i++)<br />
281 {<br />
282 for (int j = 0; j < proportions[0]; j++)<br />
283 {<br />
284 fprintf(pFileOut, "%c%c%c", matrix[j][i][0], matrix[j][i<br />
][1], matrix[j][i][2]);<br />
285 }<br />
286 }<br />
287<br />
288 fclose(pFileOut);<br />
21