Benutzer-Werkzeuge

Webseiten-Werkzeuge


farben

Farben

  • cloud4education: #469bd1 oder rgb:70,155,209
# -*- coding: utf-8 -*-
# Python für Kids (4. Auflage) - Kapitel 13
# Ereignisgesteuerte Programme
 
# Autor: Gregor Lingl
# Datum 16. 8. 2009
 
# scribble - ein einfaches Zeichenprogramm
 
# (1) Stift zeichnet eine Linie zur (links) angeklickten Stelle
# (2) Stift springt (ohne Zeichnen) zur mit mittlerer Taste
#     angeklickten Stelle
# (3) Stift kritzelt, wenn er gezogen wird
# (4) rechte Maustaste schaltet füllen ein und aus
# (5) undo() - Funktion des Stiftes an BackSpace-Taste binden
#     clear() - Funktion des Stiftes an die Leertaste binden
# (6) Strichdicken 1..9 an Tasten "1" .. "9" binden
# (7) Farbknöpfe:
#     - mit linker Maustaste anklicken: Zeichenfarbe
#     - mit rechter Maustaste anklicken: Füllfarbe
 
from turtle import *
import sys
sys.setrecursionlimit(20000)
 
def jump(x, y):
    if x < -360: return
    stift.penup()
    stift.goto(x, y)
    stift.pendown()
 
def moveto(x, y):
    if x < -360: return
    stift.goto(x,y)
 
def fuellenumschalten(xdummy, ydummy):
    if xdummy < -360: return
    if stift.fill():
        stift.end_fill()
        #stift.fillcolor("")
    else:
        stift.begin_fill()
        #stift.fillcolor("black") # fuellanzeiger.fillcolor())
 
def farbButton(farbe, y):
    t = Turtle(visible=False)
    t.shape("square")
    t.speed(0)
    t.pu(); t.goto(-380,y);
    t.fillcolor(farbe)
    def setpencolor(xdummy, ydummy, c=farbe):
        stift.pencolor(c)
    def setfillcolor(xdummy, ydummy, c=farbe):
        stift.fillcolor(c)
    t.onclick(setpencolor)
    t.onclick(setfillcolor, 3)
    t.showturtle()
 
#screen = Screen()
clear()
setup(840, 600)
screensize(800, 600)
stift = Turtle()
stift.speed(0)
stift.shape("circle")
stift.shapesize(0.4, 0.4, 3)
stift.pensize(3)
 
onscreenclick(moveto)
onscreenclick(jump, 2)
onscreenclick(fuellenumschalten, 3)
stift.ondrag(moveto)
 
for (f,y) in (("red", 160), ("green", 120), ("blue", 80),
              ("yellow", 40), ("cyan", 0), ("magenta", -40),
              ("black", -80), ("white", -120)):
    farbButton(f, y)
 
onkey(stift.undo, "BackSpace")
for c in "123456789":
    def setpensize(ps=int(c)):
        stift.pensize(ps)
        stift.shapesize(0.1 + ps/10)
    onkey(setpensize, c)
onkey(stift.clear, "space")
listen()
mainloop()
farben.txt · Zuletzt geändert: 2014/11/07 08:18 von admin