13.11.2014 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!