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 />

42 double db_p_segment[2000];<br />

43<br />

44 // Konstanten fuer Koordinatenecken<br />

45 const double coord_left = 6.0711;<br />

46 const double coord_right = 6.0918;<br />

47 const double coord_top = 50.7820;<br />

48 const double coord_bottom = 50.7716;<br />

49<br />

50 /// *************************************************<br />

51 /// * Hier startet das Programm. *<br />

52 /// *************************************************<br />

53 int main(int argc, char** argv)<br />

54 {<br />

55 // freopen( "file.txt", "w", stdout );<br />

56<br />

57 FILE * pFileMap = fopen("karte.ppm", "r");<br />

58 FILE * pFileLog = fopen("log.csv", "r");<br />

59<br />

60 // Maximale Laenge einer Zeile im Header: 5000 Zeichen (5 KB)<br />

61 char fbuffer_header[5000];<br />

62 memset(fbuffer_header , 5000, 0);<br />

63 fread(fbuffer_header , 2, 1, pFileMap);<br />

64<br />

65 // Dateiformat ueberpruefen<br />

66 if (strcmp(fbuffer_header , "P6") != 0)<br />

67 {<br />

68 printf("Die Eingabedatei karte.ppm weist ein unerwartetes Format auf<br />

und kann nicht verarbeitet werden (nur PPM-P6).\n");<br />

69 return 0;<br />

70 }<br />

71<br />

72 // Zeilenumbruch einlesen<br />

73 fread(fbuffer_header , 1, 1, pFileMap);<br />

74<br />

75 // Proportionen einlesen<br />

76 readLine(pFileMap);<br />

77 sscanf(currentLine, "%d %d", &proportions[0], &proportions[1]);<br />

78 printf("Proportionen der Datei karte.ppm: %d x %d Pixel.\n", proportions<br />

[0], proportions[1]);<br />

79<br />

80 // Farbtiefe auslesen<br />

81 readLine(pFileMap);<br />

82<br />

83 if (strcmp(currentLine, "255") != 0)<br />

84 {<br />

85 printf("Die Eingabedatei karte.ppm weist ein unerwartetes Format auf<br />

und kann nicht verarbeitet werden (nur 24-bit-Farbtiefe).\n");<br />

86 return 0;<br />

87 }<br />

88<br />

89 printf("Reserviere Speicherplatz. Dieser Vorgang kann einige Sekunden<br />

dauern...\n");<br />

90<br />

91 // Matrix: Enthaelt die ganze Bilddatei<br />

92 // Speicher dynamisch allokieren<br />

93 matrix = new unsigned char**[proportions[0]];<br />

94<br />

95 for (int i = 0; i < proportions[0]; i++)<br />

96 {<br />

97 matrix[i] = new unsigned char*[proportions[1]];<br />

98<br />

99 for (int j = 0; j < proportions[1]; j++)<br />

100 {<br />

101 matrix[i][j] = new unsigned char[3];<br />

102 }<br />

103 }<br />

104<br />

105 // Matrix fuellen<br />

106 printf("Lese alle Pixel in den Arbeitsspeicher. Dieser Vorgang kann<br />

einige Sekunden dauern...\n");<br />

107<br />

108 for (int i = 0; i < proportions[1]; i++)<br />

109 {<br />

110 // Iteriere ueber alle "Zeilen"<br />

18

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!