SFZ FN Sj. 13/14 Python 2 Turtle Inf K1/2 Sj 13/14 GZG FN W.Seyboldt.

Slides:



Advertisements
Ähnliche Präsentationen
Rekursive Grafiken Reklursive Grafiken.
Advertisements

Rekursive Grafiken Reklursive Grafiken.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Hochschule Fulda – FB ET Sommersemester 2010
verweis-sensitive Grafiken
Datenstrukturen Look-Up Tabellen, Zufallszahlen, Listen, Speichermanagement und Dateiverwaltung.
MMQL – Multimedia Query Language Eine Anfragesprache für Multimedia-Ähnlichkeitsanfragen Christian Mantei.
Eigene Metoden (Turtle-Paket (C) Taulien 2003)
Schleifen mit der Turtle
Verzweigung.
Informatik Grundkurse mit Java
© 2003 Pohlig Grundkurs Informatik 1 Übungen: Mustererzeugen.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Die Skriptsprache Python im Kontext des Softwareentwicklungsprozesses
Heute: Scherenzange zeichnen
Einstieg ins Programmieren mit Python
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Grundkonzepte Java - Klassendefinition
Mehr Richtungen.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
Programmieren - wie einsteigen ?
Programme dokumentieren mit JavaDoc
Problemlösen mit Rekursion
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Raimond Reichert Einführung in die Verwendung von Processing innerhalb von Eclipse.
Zähle die schwarzen Punkte... 
Turtle Grafik mit Logo Mairegger Martin Schroll Hannes.
Wissenschaftliche Programmierung mit Python - für Meteorologie und Atmosphärenforschung Martin G. Schultz Teil 3: Numpy.
Prototyping Augmented Reality Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Medien zwischen Technik und Gesellschaft.
Tutorium zur LV Online Research Ein Computerprogramm tut, was Du schreibst, nicht was Du willst.
VII directions - Freiburg
Guten Morgen!.
Lindenmayer-Systeme: Fraktale rekursiv zeichnen
Ein PC-Game selber machen
POCKET TEACHER Mathematik Geometrie
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Fragen aus der Kosmologie, die die Kinder stellen:
Starten der Entwicklungsumgebung (IDE)
Projektarbeit Informatik Kim Volbers Klasse 10b.
WEITERBILDUNGSKURS KINDERTURNEN 2007 MODUL KID GYM.
Dynamische Geometrie mit JSXGraph
Ein PC-Game selber machen
How to use and facilitate an OptionFinder Audience Response System.
SFZ Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Grundlagen.
Das Wetter Freiburg, Deutschland. Montag, 19 November 2012 Die tieftempertur ist eins Grad Celsius. Die hochtemperatur ist sechs Grad Celsius. Es ist.
SFZ FN Sj. 13/14 Python Grundlagen InfK12 Sj 13/14 GZG FN W.Seyboldt.
SFZ FN Sj. 13/14 Python 1 Grundlagen Inf K1/2 Sj 13/14
SFZ FN Sj. 13/14 Python 3 Rekursion Inf K1/2 Sj 13/14
Graphisches Programmieren
Tagesprogramm Montag:
to write schreiben man der Mann book das Buch telephone das Telefon.
Inf K1/2 Sj 13/14 GZG FN W.Seyboldt 1 SFZ FN Sj. 13/14 Python Klassen und Objekte.
Der formelle Imperativ – the Imperative
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Informatik im Wahlpflichtbereich
Delphi Chars und Strings
Die Zeit ist um! Wo ist …? Wie sagt man das auf Deutsch? 1. behind 1. hinter 2. in front of 2. vor 3. next to 3. neben 4. opposite 4.
Objektorientierte Programmierung (OOP)
Phonics Lessons Grade 1 Adapted from: Phonics Lessons by Gay Su Pinnell & Irene C. Fountas Grade 1, page 431 caatt If you knowIt helps you know.
Koordinatensystem. Befehlsliste.takeoff() Starten und auf der Stelle schweben.hover(delay) Aktuelle Position beibehalten und ('delay' in ms) auf der Stelle.
Prof. Dr. W.-P. Buchwald Fachhochschule Braunschweig/Wolfenbüttel University of Applied Sciences Images Original Quantized 2-dimensional sampled Sampled.
Your Logo Presentation Title Presentation Subtitle.
GRADE 1 / PLS1 / TERM 3 GERMAN
Directions Gehen Sie… in die …Straße - into …street
Turtle- Methoden November 18 Informatik Kurse
Turtle- Methoden November 18 Informatik Kurse
Reklursive Grafiken Teil I
Befehle, Anweisungen, Vorschläge, und Wünsche
 Präsentation transkript:

SFZ FN Sj. 13/14 Python 2 Turtle Inf K1/2 Sj 13/14 GZG FN W.Seyboldt

Turtle Die „Turtle“ ist eine programmierbare „Schildkröte“, die auf dem Boden hin- und herlaufen kann und, falls der Zeichenstift abgesenkt ist, ihren zurückgelegten Weg aufzeichnet. Turtle graphics is a popular way for introducing programming to kids. It was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966 GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Beginn der Turtle Seymour Papert KI-Bereich des MIT in den 1970er Projekte für Kinder mit den Zielen: Selbständiges Erschließen geometrischer Zusammenhänge Computer als Werkzeug zur Erzeugung geometrischer Figuren Veranschaulichung der Mathematik, insbesondere der Geometrie Ergebnis: Programmiersprache LOGO mit Turtle-Geometrie und präobjektorientierter Sichtweise GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Turtle-Befehle import turtle as t # import der nötigen Module hugo = t.Turtle(shape="turtle") # eine Schildkröte erstellen (Klasse) hugo.fillcolor("red") # Farbe der Schildkröte ändern hugo.forward(x) # x Pixel vorwärts hugo.left(grad) # Biege grad° nach links ab hugo.right(y) hugo.goto(x,y) # gehe zur Position (x,y) – Im Zentrum ist (0/0), Pixel hugo.circle(r) # zeichne einen Kreis mit Radius r (Pixel) hugo.circle(r,y) # zeichne einen Kreisbogen mit Radius r und Winkel y hugo.up() # hebe den Stift hugo.down() # senke den Stift – wenn sich Hugo bewegt wird gezeichnet hugo.pencolor(f) # Stelle die Farbe f ein, z.B. “ red“ Hugo.speed(x) # 0: am schnellsten, 10 schnell, 6 normal, 1 langsam Siehe http://docs.python.org/2/library/turtle.html (Offizielle Doku) GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Beispiel 1: Turtle01 import turtle as t fenster = t.Screen() fenster.bgcolor('green') hugo = t.Turtle(shape="turtle") hugo.fillcolor("yellow") hugo.up() hugo.goto(-100,-150) hugo.pencolor('red') hugo.pensize(6) hugo.down() hugo.circle(200) for i in range(4): hugo.forward(300) hugo.left(90) t.done() # Warten bis der Benutzer das Fenster schließt GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Wdh Grundlagen Python Variable sind Speicherplätze oder Notizzettel: int() // float() // str() Das Gleichheitszeichen ist ein Zuweisungsoperator Anzeige: print var1 print " Es ist %0.2f, durch %i = %1.4f" %(cf,d,q) Einfabe: eingabestr = raw_input("Info: ") Bedingung – bedingte Ausführung eines Codes if x<y: print ("Bedingung x<y erfüllt") elif x==y: # == ist das mathematische Gleichheitszeichen print ("Bedingung x=0y erfüllt") else: print ("Bedingungen x<y und y==x falsch") Schleife – wiederholte Ausführung eine Codes, leicht geändert. for i in liste: a=a+i continue macht bei der nächsten Schleife weiter, break beendet sie Listen [1,2,5,8,9] // range(a,b,d): GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgaben: Turtle02, Turtle02b Turtle02: Zeichne mit der Turtle ein regelmäßiges Zehneck. Arbeite mit einer Schleife. Turtle02b: Zeichne mit der Turtle ein regelmäßiges n-Eck, wobei die Eckenanzahl eingegeben werden soll. Erstelle eine Methode. Wie bestimmt man die Winkel? Test die Methode mit dreieck, 6-Ecke, 11-Eck GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgaben: Turtle02c / Turtle3 Turtle02c: Zeichne mit der Turtle ein regelmäßiges Sechseck, das von einem Kreis umgeben ist und in dessen Innerem ein Dreieck liegt (siehe links unten) Turtle03:Zeichne den 20-zackigen Stern unten GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgaben: Turtle04, Turtle05 Turtle04: Zeichne mit der Turtle das Haus vom Nikolaus. Vorsicht: Überlege davor, wie lang die Strecken sind. Turtle05: Schreibe eine Methode hausDesNikolaus(breite), die ein Haus vom Nikolaus der Breite breite zeichnet. Zeichne damit verschiedene immer kleiner werdende Häuser an einer Straße. Quelle http://www.mathematische-basteleien.de/nikolaushaus.htm GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgabe: Turtle06 Turtle06: Zeichne mit der Turtle den abgebildeten Kuchen. Tipps: circle(r,alpha) begin_fill() … end_fill() zeichne mit der Stiftfarbe des Hintergrund GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgabe 4: Turtle07-Turtle09 Schreibe eine Methode dreieck(l), die ein gleichseitiges Dreieck der Seitenlänge l zeichnet (Turtle07). Zeichne damit 10 ineinander geschachtelte Dreiecke (Turtle08). Zeichne einen Weihnachtsbaum bestehend aus Dreiecken wie nebenan - zuerst ohne Kerzen, Stamm und Stern, die Anzahl der Dreieck (a=b=2c) unten sei aber variabel. Im Bild ist etwa n=4. Turtle09, schreibe eine Methode. GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Aufgabe: Olympische Ringe Turtle10_Ringe.py Benutze die Methode hugo.circle(r), um die 5 Kreise zu zeichnen. Zur Position und Farbe der Ringe: Zeichne sie in einer Schleife Die Mittelpunktskoordinaten der Kreise sind (xx,yy), die Farbe color Die Kreiszentren werden wie folgt berechnet: xx=int(x0+r*1.1*x) und yy = int(y0+y*r* 1.1) mit x0,y0 = beliebiger Anfangswert Die Werte x,y, stehen in einer Liste x,y,color = posR[i] Die Liste wird vor der Schleife erstellt posR = [(0,0,"blue"), (-2,0,"purple"),(1,1,"red"), (-1,1,"yellow"), (-3,1,"green")] Der Radius ist r=50 Turtle10b_Ringe.py: Schreibe eine Methode, die die Kreise zeichnet Dabei werden r, x0,y0 übergeben. GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Klasse (class) – Objekte Unter ObjektOrientierung, kurz OO, versteht man eine Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel kooperierender Objekte beschrieben wird. Wichtig ist an einem Objekt, dass ihm bestimmte Attribute (Eigenschaften) und Methoden (Handlungen) zugeordnet sind und dass es in der Lage ist, von anderen Objekten „Informationen“ zu empfangen, beziehungsweise an diese zu senden. Ergänzt wird dies durch das Konzept der Klasse, in der Objekte aufgrund ähnlicher Eigenschaften zusammengefasst werden. Ein Objekt wird im Programmcode als Instanz beziehungsweise Inkarnation einer Klasse erstellt. Die Grundidee der ObjektOrientierten Programmierung, kurz OOP, ist, die Software an den Grundstrukturen desjenigen Bereichs der Wirklichkeit auszurichten, der die gegebene Anwendung betrifft. Die Umsetzung dieser Denkweise erfordert die Einführung verschiedener Konzepte, insbesondere Klassen, Vererbung, Polymorphie und spätes Binden. Aber auch Datenkapselung, Information Hiding, Überschreiben … Quelle: wiki GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Klasse MyTurtle / MyTurtle10.py Eine Klasse kann man sich vorstellen wie einen Bauplan oder die Beschreibung einer Firma Ein Objekt ist eine bestimmte Realisierung davon. class MyTurtle(t.Turtle): """ Erbt alles von der Klasse Turtle """ def __init__(self): """ Konstruktor, wird bei der Erzeugung eines Objekts automatisch gestartet.Enthält alles was zur Initialisierung gehört """ def drawCircle(self, x, y, color, radius=50): # Normale Methode, beginnt immer mit self, erscheint im Aufruf aber nicht Erzeuge ein Objekt vom Typ MyTurtle: hugo = MyTurtle() Der Rest ist wie gehabt (self erscheint nicht, entspricht hugo) hugo.drawCircle(x, y, color, radius=50): GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Weitere Aufgaben Zeichne einige der Figuren, halte mindestens eine Größe variabel Siehe http://clab1.phbern.ch/stud/LpTurtle/Frameset.htm GZG FN W.Seyboldt Inf K1/2 Sj 13/14

Mehrere Turtles Sollen mehr als eine Turtles auf der Zeichenfläche zeichnen, so kann man die weiteren als Objekte der Klasse Pen erstellen. Standard-Turtle: blau 2. Turtle t2: rot Programm import turtle as t import random as r t.reset() t2 = t.Pen() t.color('blue') t2.color('red') for i in range(20): t.goto(r.randint(-200,200),r.randint(-200,200)) t2.goto(r.randint(-200,200),r.randint(-200,200)) GZG FN W.Seyboldt Inf K1/2 Sj 13/14