Change folder structure for final release without clutter

This commit is contained in:
Paul Norberger
2020-02-07 16:37:20 +01:00
parent 9fd7e2b077
commit 0b619f91bb
748 changed files with 53568 additions and 640 deletions

View File

@@ -0,0 +1,31 @@
Req-ID:
0001
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
-Codierungsmöglichkeit nach folgendem Schema:
-Alle binären Codierung werden einer Farbe zugeordnet -> 2^(8)-1 mögliche Farben + Transparenz
-Die Zuordnung der Farben erfolgt automatisch und wird ebenfalls in der exportierten Datei gespeichert
-Die Umsetzung erfolgt mit dem Standart PNG8
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:
0
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 07.02.2020
History:
-Erstellt am 30.10.2019, von Jonas Mucke
-Aktualisiert am 17.12.2019, von Paul Norberger
-Vollständig umgesetzt, Stand: 16.01.2019

View File

@@ -0,0 +1,65 @@
Req-ID:
0002
Req-Type:
Funktional
Events/UCs:
- Bearbeitung des Bildes mit einer Betriebssystem unterstützen Eingabemöglichkeit, zum Beispiel Maus oder Stift
- 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.
Forms:
- Kreis:
Das Tool Kreis, soll es ermöglichen einen Kreis in einer gewählten Farbe aufzuspannen.
Dabei wird am Mittelpunkt angesetzt und dann zu einem beliebigen Punkt auf dem Kreis gezogen, die restlichen Punkte werden dann
mit dem selben Radius gefunden.
Das Rechteck besitzt 2 Farbattribute, den Rand und die Füllung. Der Rand kann im Bezug auf Breite und Farbe eingestellt werden.
Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird, und kann im Bezug auf die Farbe und die Transparenz
eingestellt werden.
- 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 existieren 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. Zwischen 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 eingestellt werden. Die Füllung ist innerhalb der Fläche, welche vom Rand aufgespannt wird,
und kann im Bezug auf die Farbe und die Transparenz 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.
Originator:
Jonas Mucke
Fit Criterion:
-Das Setzten eines Pixels, in einer beliebigen Farbe, funktioniert in 99,9% in unter 0.01 Sekundens auf Referenzsystem
-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 auf Referenzsystem
-Tools besitzen in 100% der Fälle das gewünschte Verhalten
Priority:
100
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 16.01.2019
History:
- Erstellt am 30.10.2019 um 22:10, von Jonas Mucke
- Aktualisiert am 17.12.2019, von Paul Norberger
- Aktualisiert am 16.01.2019, von Paul Norberger, Gradiations-Tool, Cuttool, Selektionstool, Korrekturtool
wurde gestrichen
- Vollständig umgesetzt, Stand: 06.02.2020

View File

@@ -0,0 +1,28 @@
Req-ID:
0003
Req-Type:
Nicht-Funktional
Events/UCs:
- Selbsterklärendes & geordnetes User Interface
Description:
- Verständliches & gewohntes Design der Benutzeroberfläche
- Ähnlichkeit zu bewährten UIs, wie die beliebter Software (Gimp, Photoshop...)
- Toolleiste, die Icons für die einzelnen Tools beinhaltet und logisch in seperate Abschnitte eingeteilt ist
- Toolleiste als Block, der sich je nach Tool ändert auf einer linken Seite des Canvas
- Ein Layer"stack", der kleine Previewbilder der einzelnen Ebenen beinhaltet und das Verändern der Reihenfolge, sowie das Löschen & Erstellen von Layern erlaubt.
- Ein großer, zentraler Canvas, der die Bearbeitung ermöglicht
Originator:
Paul Norberger
Fit Criterion:
- Testgruppe von 3 Personen, die das Programm zuvor noch nie benutzt haben, stellen keine Fragen über die Benutzerobefläche nach einigen Minuten Ausprobieren.
- Kunde, der das neue Interface noch nie benutzt hat, hat keine größeren Schwierigkeiten damit zurecht zu kommen.
Priority:
20
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 16.01.2019
History:
- Erstellt am 17.12.2019
- Aktualisiert am 16.01.2019
- Vollständig umsetzt, Stand: 06.02.2020

View File

@@ -0,0 +1,31 @@
Req-ID:
0004
Req-Type:
Funktional
Events/UCs:
- Erstellen eines Raster Layers
- Erstellen eines Shaped Layers mit Polygonfunktion
- Veränderung der Anordnung der Layer
- Verschieben der Layer innerhalb des Canvas
Description:
- Layerstruktur ist prinzipiell eine Art Array, jeder Layer hat eine Position in der Reihe und hält eigene Pixeldaten
- Es gibt einen aktiven Layer, der selektiert und geändert werden kann
- Der aktive Layer kann bearbeitet werden, während andere Layer dabei keine Beachtung finden
- Wird ein Tool verwendet wird eine Vorschau auf einem temporären Layer angezeigt, welche dann nach unten mit dem Layer
vereinigt wird, wenn die Änderung übernommen wird, Während dieses Prozesses kann die Bearbeitung auch abgebrochen werden.
In diesem Fall wird die Änderung nicht auf die darunterliegende Ebene übernommen
Originator:
Paul Norberger
Fit Criterion:
- Bis zu 10 Layer gleichzeitig bearbeitbar und durchwechselbar
- Entfernte Layer können entfernt werden
- Layer können in beliebiger Reihenfolge angeordnet und erstellt werden
Priority:
0
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 16.01.2020
History:
- Erstellt am 16.01.2020
- Vollständig implementiert, Stand: 16.01.2020

View File

@@ -0,0 +1,35 @@
Req-ID:
0005
Req-Type:
Funktional
Events/UCs:
-Rückgängigmachen eines vorherigen Fehlers
-Rückgängigmachen einer versehntlichen Korrektur
-Einen rückgängig gemachten Schritt wiederholen
Description:
-Es werden insgesamt 20 Bearbeitungschritte gespeichert
-Die gesamten Pixeldaten der Ebenen werden für jeden Schritt gespeichert
-Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt
davor im Speicher befinden. Ist dies der Fall, werden die Daten geladen und der intern
gespeicherte Index des geladenen Statuses verschiebt sich nach vorn, so kann mehrfach
geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback,
dass der Schritt nicht geladen werden kann.
-Wird der Undo aktiviert, wird zunächst bestimmt ob sich die Daten für den Schritt direkt
davor im Speicher befinden Ist dies der Fall, werden die Daten geladen und der intern
gespeicherte Index des geladenen Statuses verschiebt sich nach hinten, so kann mehrfach
geundoed und redoed werden. Ist dies nicht der Fall, gibt es ein audiovisuelles Feedback,
dass der Schritt nicht geladen werden kann.
Originator:
Paul Norberger
Fit Criterion:
-Bis zu 20 Schritte können geundoed und redoed werden
-Das Laden der einzelnen Schritte dauert für ein 512x512px Bild nicht länger als 0.2 Sekunden auf Referenzsystem
Priority:
50
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 06.02.2020
History:
- Erstellt am 18.12.2019, von Paul Norberger
- Vollständig implementiert, Stand: 06.02.2020

View File

@@ -0,0 +1,26 @@
Req-ID:
0006
Req-Type:
Nicht-Funktional
Events/UCs:
-Dokumentation
-Designdokumentation
Description:
-1 UML-Diagramm
-2 Sequenzdiagramme
-2 Zustandsdiagramme
-1 User Manual
-10 CRC-Karten
-8 Volere Snow Cards
-2 Use-Case-Diagramme
Originator:
Paul Norberger
Priority:
50
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 06.02.2020
History:
- Erstellt am 18.12.2019, von Paul Norberger
- Vollständig umgesetzt, Stand: 06.02.2020

View File

@@ -0,0 +1,30 @@
Req-ID:
0007
Req-Type:
Nicht-Funktional
Events/UCs:
- Speicherung des Projektfiles
- Laden eines Projektfiles
Description:
- Ermöglicht es das aktuelle Projekt zu speichern, dabei sind Layerdaten und Canvas Dimensionen gemeint
- Ermöglicht das laden eines gespeicherten Projekts, dabei sind Layerdaten und Canvas DImensionen gemeint
- File Format ist wie folgt anzulegen:
Versionnumber Rendersettings Canvas-Dimensions Layernumber
(Layer)
Layer-dimensions Layer-Metadata ImageType PolygonSize PolygonData ImageData
Originator:
Jonas Mucke
Fit Criterion:
- Speichern von Projekten mit 10 Layern a 200x200 funktioniert
- Polygondaten werden richtig gespeichert und geladen
- Laden von Projekten mit 10 Layern a 200x200 funktioniert
- Speichern und Laden von 10 Layern der Dimensionen 200x200 soll in unter 1 Sekunden funktionieren
Priority:
5
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 06.02.2020
History:
- Erstellt am 14.01.2020
- Start der Implementierung 24.01.2020 (zu langsam und nicht bugfrei)

View File

@@ -0,0 +1,25 @@
Req-ID:
0008
Req-Type:
Funktional
Events/UCs:
- Vertikale Scrollen der Canvas
- Horizontales Scrollen der Canvas
Description:
- Ermöglicht es die Canvas Horizontal zu Scrollen
- Ermöglicht es die Canvas Vertikal zu Scrollen
Originator:
Jonas Mucke
Fit Criterion:
- Das Scrollen der Canvas soll in horizontaler Richtung um 100% der Bildbreite (1000px) in 0.2 Sekunden funktionieren
- Das Scrollen der Canvas soll in vertikaler Richtung um 100% der Bildhöhe (1000px) in 0.2 Sekunden funktionieren
- Es soll möglich sein sowohl horizontal als auch vertiakl mindestens um 50% aus dem Bild zu Scrollen
Priority:
5
Support Material:
Ubungsblat_01.pdf
Conflicts:
- Keine bekannten Konflikte, Stand: 06.02.2020
History:
- Erstellt am 14.01.2020
- Fertigstellung der Implementierung 22.01.2020