Wie entwickelt man ein Programm?

Guten Morgen!

Ich sitze wie jeden Morgen grade mal in der sehr schön überfüllten Bahn, Gott bin ich froh, dass das bald vorbei ist, und dachte mir ich bringe euch mal die Entwicklung eines Programms näher. Als Beispiel nehme ich eine Aufgabe aus dieser Woche.
Den endgültigen Code werdet ihr dann nächste Woche sehen weil ich diese Aufgabe bis Sonntag 10 Uhr bearbeiten muss und nicht meine Arbeit für andere Abgaben bereitstellen will.
Es ist ja meine Arbeit und daher sollen sich andere nicht mit fremden Federn schmücken.
Also los geht's:


Meine Aufgabe ist es mit Hilfe von einer Bibliothek eine Animation zu zeichnen. Die Bibliothek übernimmt dabei die Zeichenarbeit aber möchte dafür auch ein paar Werte gestellt bekommen.

Die Animation soll folgendermaßen aussehen: Wir haben eine Linie die eine festgelegt Länge hat und um ihren Mittelpunkt rotiert.
Wie stellen wir das ganze jetzt an?

Ich fange an indem ich mit zunächst die Bibliothek anschaue mit der ich arbeiten soll. Da ich die Bibliothek kenne kann ich vorwegnehmen, dass die Animation entsteht indem ich die Linie zeichne, die Ebene wieder leere und dann die Linie leicht verändert neu zeichne.
Das wäre schonmal das Grundgerüst. Aber wie zeichnen wir jetzt die Linie?
Ein weiterer Blick in die Bibliothek sollte diese Frage auch sehr schnell beantworten:
Man findet eine Methode namens line mit 4 Zahlen als Parameter. Dies sollen 2 Koordinaten auf der Zeichenfläche sein. Somit wäre auch dir Struktur der Linie klar: Wir haben 2 Punkte und zeichnen dazwischen unsere Linie.
Um jetzt die gewünschte Animation zu erreichen wird es wohl das einfachste sein diese 2 Punkte vor jedem neu zeichnen zu verschieben. Vorzugsweise auf einer Kreisbahn, damit die Linie kreisförmig rotiert. Klingt logisch oder?
Jetzt müssen wir uns überlegen wie man das erreichen kann.
Dazu gibt es einen Hinweis in der Aufgabenstellung der es uns auch wieder sehr einfach macht: 
Wir können Sinus und Cosinus verwenden, aber wozu?
Wenn man sich die Sinus und Cosinus Funktion ansieht merkt man, dass an dem x Wert 0 Sinus 1 ist und Cosinus 0 das kann man jetzt mit ein paar werten durchspielen und kommt zu dem Ergebnis, dass man mit der Koordinate ( sin(x)|cos(x) ) den einheitskreis geformt hat. Somit hat man eine Koordinate die für X gegen unendlich im Kreis läuft.
Wieder ein Problem weniger, super!
Der Einheitskreis (Klick auf das Bild um eine Erklärung zu erhalten)
Der Einheitskreis (Klick auf das Bild um eine Erklärung zu erhalten)
Bliebe noch das Problem der zweiten Koordinate. Wir wollen ja 2 gegenüberliegende Punkte haben damit die Linie durch den Mittelpunkt rotiert und nicht irgendwie zufällig durch die Gegend wabert.
Das ist sehr simpel gelöst. Der gegenüberliegende Punkt von (sin(x)|cos(x)) wird ganz einfach durch (sin(-x)|cos(-x)) beschrieben. 
Somit haben schon alles was wir brauchen und können es in einer Methode zusammenpacken.

Also muss die Funktion nach unseren Überlegungen folgendermaßen aufgebaut werden:
Ich erstelle mir eine Zählvariable die ich in einer Schleife immer als letzten Schritt erhöhe.
Jetzt beginnt die Schleife:
Entsprechend der errechneten Formel bestimme ich die 2 Punkte in Abhängigkeit von der Zählvariable (x ist jetzt die Zählvariable). Dann lasse ich mit den beiden Punkten die Linie zeichnen und erhöhe die Zählvariable. Bevor ich jetzt die Schleife beende muss ich wieder die Ebene leeren, damit die Linie nicht tausende Male übereinander geworfen wird und einfach nur einen schwarzen Klumpen bildet. Dann lasse ich diese Schleife einfach endlos wiederholen und habe meine Animation.

Es ist mehr zu erklären als es eigentlich an Aufwand ist!
Danke für's lesen. Bis dann!

Kommentar schreiben

Kommentare: 0