diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001A.txt b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt new file mode 100644 index 0000000..ce4e8a4 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001A.txt @@ -0,0 +1,58 @@ +Req-ID: + 0001A +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Minimale RGB-A Darstellung des Bildes mittel einem Byte + -Codierungsmöglichkeit nach folgendem Schema: + -Bit 7,6 werden Benutz um den Alpha-Kanal zu codieren: + -0b00 -> Bit ist 100% Transparent (Transparent) + -0b01 -> Bit ist 66% Transparent + -0b10 -> Bit ist 33% Transparent + -0b11 -> Bit ist 0% Transparent + -Bit 5,4 werden Benutz um den Rot-Kanal zu codieren: + -0b00 -> Bit ist 0% Rot (Schwarz) + -0b01 -> Bit ist 33% Rot + -0b10 -> Bit ist 66% Rot + -0b11 -> Bit ist 100% Rot (Rot) + -Bit 3,2 werden Benutz um den Grün-Kanal zu codieren: + -0b00 -> Bit ist 0% Grün (Schwarz) + -0b01 -> Bit ist 33% Grün + -0b10 -> Bit ist 66% Grün + -0b11 -> Bit ist 100% Grün (Grün) + -Bit 1,0 werden Benutz um den Blau-Kanal zu codieren: + -0b00 -> Bit ist 0% Blau (Schwarz) + -0b01 -> Bit ist 33% Blau + -0b10 -> Bit ist 66% Blau + -0b11 -> Bit ist 100% Blau (Blau) + Definitionen der benutzen Farben nach RGB-A Modell: + Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111) + Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111) + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) + -verschiedene Transparenzstufen, bis auf 0b11, werden als einzelne Farbstufen gezählt: 2^(8)-1 verschiede Farbstufen +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 0b0000'0000) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 21:59, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001B.txt b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt new file mode 100644 index 0000000..906b810 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001B.txt @@ -0,0 +1,35 @@ +Req-ID: + 0001B +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Codierungsmöglichkeit nach folgendem Schema: + -0b0000'0000, wird als Transparents-Codierung definiert + -Alle weiteren Binären Codierung werden per Hand, in Abstimmung mit dem Kunden und dem Team, + einer Farbe zugeordnet -> 2^(8)-1 mögliche Farben + Transparenz + Definitionen der benutzen Farben nach RGB-A Modell: + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 1) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 21:58, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0001/Req_0001C.txt b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt new file mode 100644 index 0000000..b847c41 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0001/Req_0001C.txt @@ -0,0 +1,64 @@ +Req-ID: + 0001C +Req-Type: + Nicht-Funktional +Events/UCs: + -Speicherung eines Bildes + -Pixel wird mit einem Byte dargestellt + -Overhead für Metainformationen erlaubt + -Keine seperate abhandlung von "RasterImage" und "ShapedImage" +Description: + -Ein Bild wird mit maximal einem Byte pro Pixel kodiert + -Repräsentation im folgenden: + 0b0000'0000, wobei die 0 nach dem Prefix 0b als Bit 7 Indiziert ist, und jedes rechtere Bit + davon um eins Dekrementiert Indiziert wird + -Die Bits 7,6 werden benutzt um einen Farbchannel zu setzen. Bei einem Farbchannel handelt es sich um einen + Schalter, welcher zwischen den Channeln "Rot", "Grün", "Blau", "Grau/Alpha" Handelt. + Wenn ein Channel gesetzt ist, für ein Pixel, so wird dieses Pixel nur mittels einer Farbstufe dieses Channels + Dargestellt. + -Codierungsmöglichkeit nach folgendem Schema: + -0b00XX'XXXX entspricht dem "Grau/Alpha" Channel + 0b0000'0000 entspricht dem Transparenzwert 100% (Transparent) + 0b0000'0001 enstpricht den Farbwert Schwarz (Schwarz) + 0b0011'1111 enstpricht dem Farbwert Weiß (Weiß) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b01XX'XXXX entspricht dem "Rot" Channel: + 0b0111'1111 entspricht dem intensivstem Rot(Rot) + 0b0100'0000 enstpricht dem blasesten Rot(Schwarz-Rot) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b10XX'XXXX entspricht dem "Grün" Channel: + 0b1011'1111 entspricht dem intensivstem Grün (Grün) + 0b1000'0000 enstpricht dem blasesten Grün(Schwarz-Grün) + Dazwischen exestiert eine uniform partitionierte Farbkurve + -0b11XX'XXXX entspricht dem "Blau" Channel: + 0b1111'1111 entspricht dem intensivstem Blau (Blau) + 0b1100'0000 enstpricht dem blasesten Blau(Schwarz-Blau) + Dazwischen exestiert eine uniform partitionierte Farbkurve + Definitionen der benutzen Farben nach RGB-A Modell: + Weiß (0b1111'1111, 0b1111'1111, 0b1111'1111, 0b1111'1111) + Schwarz (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Rot (0b1111'1111, 0b0000'0000, 0b0000'0000, 0b1111'1111) + Grün (0b0000'0000, 0b1111'1111, 0b0000'0000, 0b1111'1111) + Blau (0b0000'0000, 0b0000'0000, 0b1111'1111, 0b1111'1111) + (Schwarz-Rot) (0b0000'0001, 0b0000'0000, 0b0000'0000, 0b1111'1111) + (Schwarz-Grün) (0b0000'0000, 0b0000'0001, 0b0000'0000, 0b1111'1111) + (Schwarz-Blau) (0b0000'0000, 0b0000'0000, 0b0000'0001, 0b1111'1111) + Transparent (0b0000'0000, 0b0000'0000, 0b0000'0000, 0b0000'0000) + -Nach diesem Prinzip können nur die Grundfarben der Additiven Farbdarstellung projeziert werden, + dies hat ein sehr bunt beschränktes Farbshema zur folgendem + -Es können insgesamt [3*2^(6)]+[2^(6)-1] = 2^(8)-1 Farbstufen dargestellt werden + Transparenz +Originator: + Jonas Mucke +Fit Criterion: + -Darstellung von mindestens 250 paarweise verschiedenen Farbstufen + -Darstellung einen transparenten Bits (Alpha Kanal = 1) + -Verarbeitungsmöglichkeit für 2^10 Pixel in unter 0.1 Sekunde beim Einlesen und Speichern +Priority: + 100 +Support Material: + Ubungsblat_01.pdf +Conflicts: + Noch keine Einigung auf Farbkodierung (0001A-0001C)-> Rücksprache mit dem Kunden + (Ein Byte deckt einen sehr kleinen Farbbereich ab und ist nicht sehr elegant -> Rücksprache mit dem Kunden ob 4 Byte akzeptabel wären) +History: + -Erstellt am 30.10.2019 um 22:04, von Jonas Mucke diff --git a/Abgabe/Abgabe 1/Req0002/Req_0002.txt b/Abgabe/Abgabe 1/Req0002/Req_0002.txt new file mode 100644 index 0000000..dc98763 --- /dev/null +++ b/Abgabe/Abgabe 1/Req0002/Req_0002.txt @@ -0,0 +1,64 @@ +Req-ID: + 0002 +Req-Type: + Funktional +Events/UCs: + -Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift bzw. Ähnliche + -Bearbeitung mittels verschiedener Zeichen-Tools + -Freiwählbare Farbe aus dem möglichen Farbbereich +Description: + -Ein Farbwert, auch Transparent, welcher durch die genutzte Codierung (siehe Req_0001) darstellbar sein. Dies soll mittels Tools + gesetzt werden können, wobei diese spezifizieren was "gesetzt" bedeutet. + -Tools: + Pinsel: + -Der Pinsel ist ein Tool, welches um seinen Mittelpunkt alles in einem gewissen Pixelradius einfärbt. + Der Pixelradius geht dabei von 1-Pixel bis zu 10-Pixel. + Formen: + -Linie: + Das Tool Formen (Linie), soll es einem ermöglichen eine Linie in der gewählten Farbe zwischen 2 Punkten zu + ziehen. Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen, dabei verändert sich die Linie live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwischen + Start und Endpunkt wird die Linie gezeichnet. + Es exestieren verschiedene Linien-Formen: + -durchgezogene Linie (eine Linie ohne Lücken) + -gestrichelte Linie (auf der Linie werden nur Striche in regelmäßigen Abständen gezeichnet) + -gepunktete Linie (auf der Linie wird punktweise zwischen Farbig und Transparent alterniert) + Die Linie kann mittels dem Breite-Attribut verändert werden (Breite zwischen 1 und 10 Pixel) + -Rechteck: + Das Tool Formen (Rechteck), soll es einem ermöglichen ein Rechteck in ein einer gewählten Farbe aufzuspannen. + Dabei wird am ersten Punkt angesetzt und zum Zielpunkt gezogen. Dabei verändert sich das Rechteck live. + Sobald das Eingabegerät getogglet wird, so wird die aktuelle Stelle als Endpunkt angenommen. Zwiscehn Start und Endpunkt + wird das Rechteck aufgespannt. + Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand ist um das Rechteck gesetzt und kann + im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welcher vom Rand aufgespannt wird, + und kann im Bezug auf die Farbe eingestellt werden. + -Konvexe Form: + Das Tool Formen (Konvex), soll einem ermöglichen beliebige, konvexe Formen zu erstellen. + Dabei werden Punkte gesetzt, welche durch toggeln des Eingabegeräts, an der Stelle des Cursors gesetzt werden. + Sollte ein Punkt im Radius von 10 Pixel zum Startpunkt sein, so wird die Erstellung abgeschlossen. Danach werden Linien + zwischen den gesetzten Punkten (in korrekter Reihenfolge) gezeichnet und der Zwischenraum gefüllt. + Dabei besitzt die konvexe Form 2 Farbattribute, den Rand und die Füllung. Der Rand ist um die konvexe Form + gesetzt und kann im Bezug auf Breite und Farbe eingesetellt werden. Die Füllung ist innerhalb der Fläche, welche durch den Rand + aufgespannt wird, und kann im Bezug auf die Farbe eingestellt werden. + FloodFill: + -Das Floodfill Tool, bei diesem wird ein Pixel ausgewählt. Alle Pixel die mit diesem Pixel in einer Äquivalenzklasse + im Bezug auf Farbe und Nachbarschafts-Relation stehen, werden in die gewählte Farbe eingefärbt. + Einfarbig: + -Das Einfarbig Tool färbt das gesamte Bild in die gewählte Farbe ein. + Reverse: + -Der letzte State des Bildes wird wieder hergestellt. (Speicherung von mindestens 10 alten Zuständen). +Originator: + Jonas Mucke +Fit Criterion: + -Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekunden. + -Der Vollständige Farbbreich ist frei wählbar. + -Es müssen mindestens 3 Tools benutzbar sein, das bedeutet eine 99,9% richtiges Verhalten in unter 0.1 Sekunden. + -Tools besitzen in 100% der Fälle das gewünschte Verhalten +Priority: + 80 +Support Material: + Ubungsblat_01.pdf +Conflicts: + -keine Bekannten Konflikte(stand: 30.10.2019 22:10) +History: + -Erstellt am 30.10.2019 um 22:10, von Jonas Mucke diff --git a/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt new file mode 100644 index 0000000..6c77ca5 --- /dev/null +++ b/Abgabe/Abgabe 2/Klassen_Verantwortlichkeiten_und_Kollaborationen.txt @@ -0,0 +1,303 @@ +Klasse: Bild (abstrakt) + Vererbung: + - + Verantwortlichkeiten: + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels + Kollaborationen: + - Der Anwender will ein Bild öffnen und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: Bilddimensionen + Vererbung: + - Bild + Verantwortlichkeiten: + - Wissen über die Größe des Bildes + Kollaborationen: + - Nutzer kann die Anzahl der Pixel in x und y Richtung abfragen + +Klasse: RasterImage + Vererbung: + - Bild + Verantwortlichkeiten: + - Darstellung des gezeichneten Bildes + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels (je ein Bit pro Pixel) + Kollaborationen: + - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: ShapedImage + Vererbung: + - RasterImage + Verantwortlichkeiten: + - Speicherung der Daten in einem 2d-Array + - Speicherung der Farbdaten jedes einzelnen Pixels -> Transparenz + - Speicherung der Polygondaten + - Darstellung der Transparenz außerhalb des Polygons und des Bildes innerhalb des Polygons + Kollaborationen: + - Der Anwender will ein Bild öffnen, bearbeiten und speichern können, ohne sich darüber Gedanken machen zu müssen + +Klasse: Tool (abstrakt) + Vererbung: + - + Verantwortlichkeiten: + - Name, Beschreibung, Tooltip und Icon des Tools speichern + - Veränderung der Pixeldaten des Bildes + Kollaborationen: + - Der Anwender will ein Bild bearbeiten können + +Klasse: Set-Color-Tool (abstrakt) + Vererbung: + - Tool + Verantwortlichkeiten: + - Verwalten der Farbcodierung und deren Darstellung + - Bearbeiten des Bildes durch Verändern von Farbcodes an bestimmten Pixeln + - Darstellung der Farbpallette + Kollaborationen: + - Der Anwender möchte das Bild farblich gezielt verändern + - Der Anwender möchte die Farbwerte der einzelnen Pixel abfragen + +Klasse: Un-/Redo-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - 20 Operationen speichern + - die letzten (bis zu 10) Änderungen rückgängig machen + - die letzten (bis zu 10) Undo-Aufforderungen rückgängig machen + - sobald gezeichnet wird, werden alle Redo-Einträge gelöscht + Kollaborationen: + - Der Anwender möchte eine Tool Änderung rückgängig machen + - Der Anwender möchte eine Undo Aktivität rückgängig machen + +Klasse: Dreh-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Rotation des angezeigten Bildes + - Ändern der Farbwerte, so dass sie mit dem rotierten Bild übereinstimmen + Kollaborationen: + - Möglichkeit für den Nutzer das Bild zu drehen + - Der Anwender möchte das Bild gedreht speichern + +Klasse: Size-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Vergrößerung des Bildes (Werte) + - Verkleinerung des Bildes (Werte) + - Skalieren + Kollaborationen: + - Der Anwender möchte die Auflösung des Bildes vergrößern + - Der Anwender möchte die Auflösung des Bildes verkleinern + + +Klasse: Merge-Tool + Vererbung: + - Tool + Verantwortlichkeiten: + - Das Zusammenfügen zweier Bilder in eine neue Datei (Abspeichern der neuen Farbwerte) + - Das Zusammenfügen übereinander oder nebeneinander (wenn Alpha-Kanal vorhanden) + Kollaborationen: + - Der Anwender möchte ein Bild neben einem anderen Bild speichern + - Der Anwender möchte ein Bild über einem anderen speichern + +Klass: View-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Verändern der Ansicht des Bilder + Kollaborationen: + -Der User möchte das Bild anders Anzeigen lassen + +Klasse: Zoom-Tool + Vererbung: + - View-Tool + Verantwortlichkeiten: + - Vergrößerung des Bildes (Ansicht) + - Verkleinerung des Bildes (Ansicht) + - Zoomen + Kollaborationen: + - Der Anwender möchte in ein Bild zoomen + - Der Anwender möchte aus dem Bild heraus zoomen + +Klasse: Merge-View-Tool + Vererbung: + - View-Tool + Verantwortlichkeiten: + - Das Anzeigen zweier Bilder in der Datei + Kollaborationen: + - Der Anwender möchte ein Bild neben einem anderen Bild anzeigen + - Der Anwender möchte ein Bild über einem anderen anzeigen lassen + +Klasse: Pen-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Speicherung des eingestellten Radius + - Setzen von Pixelwerten um die Cursor-Stelle in einen auswählbaren Radius in einer auswählbaren Farbe + Kollaborationen: + - Der Anwender möchte Freihand in einer freiwählbaren Farbe in einem freiwählbaren Radius zeichnen, ohne Beschränkung innerhalb des Bildes + +Klasse: FloodFill-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - alle Pixel in einer Äquivalenzklasse zum aktuellen Pixel in eine freiwählbare Farbe einfärben + Kollaborationen: + - Der Anwender möchte eine Fläche einer Farbe komplett umfärben + +Klasse: Plain-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - alle Pixel des Bildes in eine Farbe ändern + Kollaborationen: + - Der Anwender möchte das Bild einfarbig einfärben + +Klasse: Formen-Tool (abstrakt) + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Zeichnen eines geometrischen Primitives + - vereinheitlichte Darstellung der Formauswahl und Ränder + Kollaborationen: + - Der Anwender möchte ein/e Rechteck/Linie oder eine konvexe Form zeichnen + +Klasse: Linien-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Zeichnen einer Linie in einer wählbaren Dicke und Farbe + - Die Linie kann durchgängig, gestrichelt oder gepunktet gezeichnet werden + Kollaborationen: + - Der Anwender möchte eine durchgezogene Linie zeichnen + - Der Anwender möchte eine gestrichelte Linie zeichnen + - Der Anwender möchte eine gepunktete Linie zeichnen + +Klasse: Rechteck-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen eines Rechtecks zwischen zwei Punkten, der Rand und die Fläche sind in der Farbe frei wählbar, + diese Wählbarkeit ist separat vom anderen Zustand möglich + - Der Rand kann in der Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll Transparenz speichern + - Der Anwender möchte ein Rechteck zeichnen, die innere Fläche soll eine Farbe haben, der Rand soll eine gewisse Breite und Farbe haben + +Klasse: Konvexe-Form-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen einer konvexen Form mittels Punkten (max 100) + - Die konvexe Form hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann + - Der Rand kann im Bezug auf seine Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein n-Eck zeichnen, dazu berührt er auf dem Bildschirm n-Punkte und am Schluss den Anfangspunkt (10pxl Radius?) + - In der berührten Reihenfolge werden Linien gezogen, die die Form aufspannen und je nach Einstellungen wird der Rand und die interne Fläche dargestellt + +Klasse: Polygon-Form-Tool + Vererbung: + - Formen-Tool + Verantwortlichkeiten: + - Aufspannen eines Polygons über das Bild + - Das Polygon hat einen Rand und eine interne Fläche, deren Farbe separat gewählt werden kann + - Der Rand kann im Bezug auf seine Dicke eingestellt werden + Kollaborationen: + - Der Anwender möchte ein Polygon zeichnen + +Klasse: Kreis-Tool + Vererbung: + - Set-Color-Tool + Verantwortlichkeiten: + - Erstellen einer Kreisform in dem man den Mittelpunkt bestimmt und zwei Radien festlegen kann (NS und WO Radius) + - Die Dicke des Randes des Kreises ist freiwählbar, sowie die Art des Randes (Gepunktet, etc.), genauso wie die Farbe des Kreises und des Randes + Kollaborationen: + - Der Anwender möchte einen beliebigen Kreis und eine beliebige Ellipse zeichnen können + +Klasse: Selection-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Auswählen von einem Bereich(beliebiger Bereich) + Kollaborationen: + - Der Anwender möchte ein Bereich Auswählen (quadratisch) + +Klasse: Cut-Tool + Vererbung: + -Selection-Tool + Verantwortlichkeiten: + -Auswählen von Bildern und das ausschneiden dieser + Kollaborationen + - Der Anwender möchte ein Bild auswählen und bewegen oder löschen + +Klasse: Korrektur-Tool(abstrakt) + Vererbung: + -Tool + Verantwortlichkeiten: + -Verändern von Bild Daten (Korrektur) + Kollaborationen: + -Der Anwender möchte ein Bild verändern und dies mit Korrektur + +Klasse: Helligkeits-Tool + Vererbung: + Korrektur-Tool + Verantwortlichkeiten + Verändert die Helligkeits Werte + Kollaboration: + Der Anwender möchte das Bild verdunkeln oder aufhellen + +Klasse: Farbton-Tool + Vererbung: + Korrektur-Tool + Verantwortlichkeiten: + Verändert die Sättigung von Farbdaten + Kollaborationen: + Der User möchte ein Bild sättigen oder verblassen + +Klasse: Gradations-Tool + Vererbung: + Korrektur-Tool: + Verantwortlichkeiten: + Setzen einer Gradationskurve + Kollaboration: + Der User möchte eine Gradationskurve eines Farbschemas Erstellen + +Klasse: 3D-Objekt + Vererbung: + - + Verantwortlichkeiten: + -Wissen über die Vertices und das Managen dieser + Kollaborationen: + -Der User möchte ein 3D Objekt laden + +Klassen: 3D-Inspector + Vererbung: + - + Verantwortlichkeiten: + -Darstellen eines 3D Objekts und der Projezierung (RayTracer) + Kollaborationen: + -Der User möchte ein 3D Objekt auf das Layer projezieren + +Klasse: Layer + Vererbung: + - + Verantwortlichkeiten: + -Darstellung eines Bildes und Sichtbarkeit auf sich selbst + Kollaborationen: + -Der User möchte ein Bild auf einem Layer darstellen + +Klasse: Layer-Manager + Vererbung: + - + Verantwortlichkeiten: + -Sichtbarkeit und Darstellung der Bilder auf verschiedenen Layern + -Projektion auf ein Bild + Kollaborationen: + -Der User möchte ein Layer über das andere schieben + -Der User möchte die Layer löschen + -neues Layer erstellen + + + + + \ No newline at end of file diff --git a/Abgabe/Abgabe 3/UML.pdf b/Abgabe/Abgabe 3/UML.pdf new file mode 100644 index 0000000..e379a3e Binary files /dev/null and b/Abgabe/Abgabe 3/UML.pdf differ diff --git a/Abgabe/Abgabe 3/UML.uxf b/Abgabe/Abgabe 3/UML.uxf new file mode 100644 index 0000000..2ccb1a4 --- /dev/null +++ b/Abgabe/Abgabe 3/UML.uxf @@ -0,0 +1,757 @@ + + + 9 + + UMLClass + + 2106 + 171 + 171 + 81 + + /*Image*/ +-- ++pixel_data: byte[][] ++size: Vector2 +-- ++clear_image(Color) + + + + UMLClass + + 2115 + 450 + 162 + 36 + + *RasterImage* +-- +-- + + + + UMLClass + + 2106 + 702 + 189 + 99 + + *ShapedImage* +-- +-polygon_data: byte[][] +-- ++create_vertex(Vector2) ++remove_vertex(Vector2) ++clear_polygon() + + + + UMLClass + + 450 + 171 + 261 + 171 + + /*Tool*/ +-- ++effected_area_border_color: Color ++effected_area_border_radius: int ++effected_area_border_line_type: LineType ++name: String ++icon: Sprite ++tooltip: String ++description: String +... +-- +/+handleImageClick(Vector2): void/ + + + + Relation + + 2187 + 243 + 27 + 225 + + lt=<<- + 10.0;10.0;10.0;230.0 + + + Relation + + 2187 + 477 + 27 + 243 + + lt=<<- + 10.0;10.0;10.0;250.0 + + + UMLClass + + 468 + 450 + 225 + 153 + + /*SetColorTool*/ +-- ++colors: Color[255] ++selected_colors: Color[2] +-- ++renderColorPalette(): void ++setMainColor(Color): void ++setSecondaryColor(Color): void ++getMainColor(): Color ++getSecondaryColor(): Color + + + + UMLClass + + 0 + 450 + 225 + 117 + + *HistoryTool* +-- +-history: HistoryAction[20] +-current_location: int +-- ++undo(): bool ++redo(): bool ++clearRedo(): void ++addUndo(HistoryAction): void + + + + UMLClass + + 945 + 171 + 216 + 117 + + <<Enumeration>> +*LineType* +-- + Solid + Dotted + Dashed + LongDash + ... + + + + Relation + + 99 + 558 + 27 + 162 + + lt=<<<<- + 10.0;10.0;10.0;160.0 + + + UMLClass + + 0 + 702 + 225 + 45 + + *HistoryAction* +-- ++string action_data[] +-- + + + + UMLClass + + 0 + 864 + 225 + 99 + + <<Enumeration>> +*HistoryActionType* +-- + ColorChange + Deletion + PolygonVertex + .... + + + + Relation + + 99 + 738 + 99 + 144 + + lt=<- ++action_type + 10.0;140.0;10.0;10.0 + + + UMLClass + + 468 + 702 + 225 + 45 + + *FloodFillTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 234 + 702 + 225 + 45 + + *PlainTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 702 + 225 + 90 + + /*FormsTool*/ +-- ++edge_display_line_type: LineType ++edge_display_color: Color ++edge_display_thickness: int +-- + + + + UMLClass + + 936 + 702 + 225 + 63 + + *PenTool* +-- +-radius: int +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 864 + 225 + 90 + + *RectangleTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 1179 + 864 + 216 + 72 + + *LineTool* +-- ++thickness: int ++line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 936 + 864 + 234 + 90 + + *ConvexFormsTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 468 + 864 + 225 + 90 + + *PolygonTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + Relation + + 648 + 594 + 423 + 126 + + lt=<<- + 10.0;10.0;450.0;120.0 + + + Relation + + 612 + 594 + 225 + 126 + + lt=<<- + 10.0;10.0;230.0;120.0 + + + Relation + + 567 + 594 + 27 + 126 + + lt=<<- + 10.0;10.0;10.0;120.0 + + + Relation + + 333 + 594 + 225 + 126 + + lt=<<- + 230.0;10.0;10.0;120.0 + + + Relation + + 576 + 333 + 27 + 135 + + lt=<<- + 10.0;10.0;10.0;130.0 + + + Relation + + 837 + 783 + 225 + 99 + + lt=<<- + 10.0;10.0;230.0;90.0 + + + Relation + + 810 + 774 + 27 + 108 + + lt=<<- + 10.0;10.0;10.0;100.0 + + + Relation + + 882 + 783 + 423 + 99 + + lt=<<- + 10.0;10.0;450.0;90.0 + + + Relation + + 558 + 783 + 252 + 99 + + lt=<<- + 260.0;10.0;10.0;90.0 + + + Relation + + 99 + 333 + 414 + 135 + + lt=<<- + 440.0;10.0;10.0;130.0 + + + UMLClass + + 234 + 864 + 225 + 81 + + *CircleTool* +-- ++edge_thickness: int ++edge_line_type: LineType +-- ++handleImageClick(Vector2): void + + + + Relation + + 324 + 783 + 459 + 99 + + lt=<<- + 490.0;10.0;10.0;90.0 + + + UMLClass + + 234 + 450 + 225 + 63 + + *MergeTool* +-- ++import_file: DataStream<File> +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 702 + 450 + 225 + 45 + + *RotateTool* +-- +-- ++handleImageClick(Vector2): void + + + + UMLClass + + 936 + 450 + 225 + 45 + + *ResizeTool* +-- +-- ++handleImageClick(Vector2): void + + + + Relation + + 621 + 333 + 216 + 135 + + lt=<<- + 10.0;10.0;220.0;130.0 + + + Relation + + 666 + 333 + 405 + 135 + + lt=<<- + 10.0;10.0;430.0;130.0 + + + Relation + + 333 + 333 + 225 + 135 + + lt=<<- + 230.0;10.0;10.0;130.0 + + + UMLClass + + 1170 + 450 + 225 + 54 + + *SelectionTool* +-- ++pos1: int ++pos2: int +-- + + + + + Relation + + 684 + 333 + 630 + 135 + + lt=<<- + 10.0;10.0;680.0;130.0 + + + UMLClass + + 1170 + 702 + 225 + 36 + + *CutTool* +-- +-- + + + + + Relation + + 1278 + 495 + 27 + 225 + + lt=<<- + 10.0;10.0;10.0;230.0 + + + UMLClass + + 1404 + 450 + 225 + 90 + + *KorrekturTool* +-- ++Value: int +-- ++increse(Value) ++decrese(Value) + + + + Relation + + 702 + 333 + 837 + 135 + + lt=<<- + 10.0;10.0;910.0;130.0 + + + UMLClass + + 1404 + 702 + 225 + 36 + + *HelligkeitsTool* +-- +-- + + + + Relation + + 1512 + 531 + 27 + 189 + + lt=<<- + 10.0;10.0;10.0;190.0 + + + UMLClass + + 1638 + 702 + 225 + 36 + + *FarbtonTool* +-- +-- + + + + + Relation + + 1539 + 531 + 234 + 189 + + lt=<<- + 10.0;10.0;240.0;190.0 + + + UMLClass + + 1872 + 702 + 225 + 54 + + *GradationsTool* +-- +-- ++generate_gradient(): void + + + + Relation + + 1575 + 531 + 432 + 189 + + lt=<<- + 10.0;10.0;460.0;190.0 + + + UMLClass + + 1170 + 171 + 225 + 72 + + *3D-object* +-- ++vertices +-- ++load_3D(Object): void + + + + + UMLClass + + 1404 + 171 + 225 + 54 + + *3D-inspector* +-- +-- ++generate_3D(): void + + + + + UMLClass + + 1872 + 171 + 225 + 81 + + *Layer-Manager* +-- +-- ++generate_layer(): void ++delete_layer(int): void ++overlab_layer(): void + + + + + UMLClass + + 1638 + 171 + 225 + 54 + + *Layer* +-- +-- ++display_layer(): void + + + + diff --git a/Abgabe/Abgabe 3/Use_case.pdf b/Abgabe/Abgabe 3/Use_case.pdf new file mode 100644 index 0000000..cffc003 Binary files /dev/null and b/Abgabe/Abgabe 3/Use_case.pdf differ diff --git a/Abgabe/Abgabe 3/Use_case.uxf b/Abgabe/Abgabe 3/Use_case.uxf new file mode 100644 index 0000000..251c8b9 --- /dev/null +++ b/Abgabe/Abgabe 3/Use_case.uxf @@ -0,0 +1,405 @@ + + + 17 + + UMLActor + + 17 + 459 + 170 + 187 + + 3D-Künstler +bg=green + + + + UMLActor + + 68 + 714 + 136 + 187 + + Einsteiger +bg=red + + + + UMLUseCase + + 646 + 391 + 204 + 119 + + Zusammenfügen +von Bildern +bg=red + + + + UMLUseCase + + 646 + 527 + 204 + 119 + + Ändern der +Bilderauflösung +bg=red + + + + UMLUseCase + + 646 + 663 + 204 + 119 + + Drehen von +Bildern +bg=red + + + + UMLUseCase + + 646 + 969 + 204 + 119 + + Retuschieren +der Bilder +bg=magenta + + + + UMLActor + + 51 + 1037 + 170 + 187 + + Casual User +bg=red + + + + Relation + + 119 + 442 + 561 + 306 + + + 310.0;10.0;10.0;160.0 + + + Relation + + 119 + 561 + 561 + 187 + + + 310.0;10.0;10.0;90.0 + + + Relation + + 119 + 680 + 561 + 68 + + + 310.0;20.0;10.0;20.0 + + + Relation + + 119 + 442 + 561 + 629 + + + 310.0;10.0;10.0;350.0 + + + Relation + + 119 + 561 + 561 + 510 + + + 310.0;10.0;10.0;280.0 + + + Relation + + 119 + 697 + 561 + 374 + + + 310.0;10.0;10.0;200.0 + + + Relation + + 119 + 986 + 561 + 85 + + + 310.0;20.0;10.0;30.0 + + + Relation + + 136 + 1003 + 544 + 408 + + + 300.0;10.0;10.0;220.0 + + + UMLUseCase + + 646 + 1394 + 204 + 119 + + Korrektur- +werkzeuge +bg=blue + + + + UMLNote + + 629 + 1547 + 238 + 119 + + Helligkeit/Kontrast +Farbton/Sättigung +Gradationskurven +bg=blue + + + + Relation + + 136 + 1360 + 544 + 119 + + + 300.0;50.0;10.0;10.0 + + + Relation + + 731 + 1496 + 51 + 85 + + + 10.0;10.0;10.0;30.0 + + + UMLUseCase + + 646 + 1122 + 204 + 119 + + Pinsel +bg=blue + + + + UMLUseCase + + 646 + 1258 + 204 + 119 + + Auswahl- +werkzeuge +bg=blue + + + + Relation + + 136 + 1292 + 544 + 119 + + + 300.0;10.0;10.0;50.0 + + + Relation + + 136 + 1156 + 544 + 255 + + + 300.0;10.0;10.0;130.0 + + + UMLActor + + 0 + 1377 + 306 + 187 + + Freiberufliche Fotografen +bg=blue + + + + UMLUseCase + + 646 + 816 + 204 + 119 + + Layerstruktur +bg=dark_gray + + + + Relation + + 85 + 272 + 595 + 221 + + + 330.0;10.0;10.0;110.0 + + + UMLUseCase + + 646 + 238 + 204 + 119 + + Schnittstelle +für 3D-Modelle +bg=green + + + + Relation + + 85 + 136 + 595 + 357 + + + 330.0;10.0;10.0;190.0 + + + UMLUseCase + + 646 + 102 + 204 + 119 + + Erzeugen von +3D-Objekten +bg=green + + + + Relation + + 136 + 867 + 544 + 544 + + + 300.0;10.0;10.0;300.0 + + + Relation + + 119 + 867 + 561 + 204 + + + 310.0;10.0;10.0;100.0 + + + Relation + + 119 + 697 + 561 + 221 + + + 310.0;110.0;10.0;10.0 + + + Relation + + 85 + 442 + 595 + 476 + + + 330.0;260.0;10.0;10.0 + + + UMLClass + + 527 + 0 + 459 + 1836 + + lw=2 +IntelliPhoto Benchmark 1.0 +bg=gray + + +