diff options
author | JakobS1n <jakob@Jakobs-MacBook-Pro.local> | 2016-03-19 10:44:40 +0100 |
---|---|---|
committer | JakobS1n <jakob@Jakobs-MacBook-Pro.local> | 2016-03-23 15:45:17 +0100 |
commit | ca9e0dab78d974f9616b23fbfe05185034d06eeb (patch) | |
tree | 756efb8f203d16979ab8f10b82d0bc51c1d772f6 | |
parent | 9b7f5836ee3cf48e2f4ad8ac672f8aecc078dbe7 (diff) | |
download | math-draw-ca9e0dab78d974f9616b23fbfe05185034d06eeb.tar.gz math-draw-ca9e0dab78d974f9616b23fbfe05185034d06eeb.zip |
Stable
added keypress events
-rw-r--r-- | math-draw.py | 319 |
1 files changed, 311 insertions, 8 deletions
diff --git a/math-draw.py b/math-draw.py index ffa2231..d676595 100644 --- a/math-draw.py +++ b/math-draw.py @@ -6,6 +6,7 @@ # Imports import turtle import math +import sys def setup(): global startPosition # Et referansepunkt for sentrum + radius @@ -15,13 +16,24 @@ def setup(): global multiplier # Hva gjeldene punkt skal ganges med for aa finne motstaaende punkt global pointsArray # Array med plasseringen til alle punktene paa sirkelbuen global differAngle # Vinkelen mellom hvert punkt fra sentrum - global currentHeading + global currentHeading # En variabel om treng i drawChord funksjonen + global wn # SkjermObjekter + global wheel # skilpaddeObjektet + global animation # Boolean for animajon paa/av + global dots # Boolean for prikker paa sirkelbuen paa/av + global tracer # Boolean for linjetegning paa/av center = (0, 0) radiusInt = 375 pointsInt = 700 multiplier = 2 pointsArray = [[0 for x in range(pointsInt)] for x in range(pointsInt)] + animation = True + dots = False + tracer = False + + wn = turtle.Screen() + wheel = turtle.Turtle() def drawPolygon(t, sideLength, numSides): turnAngle = 360 / numSides @@ -105,14 +117,13 @@ def drawChord(t, update, animation): currentPoint = currentPoint + 1 if currentPoint > (pointsInt): break - + t.tracer(False) def main(): # Definer "skilpadde" - wn = turtle.Screen() - wheel = turtle.Turtle() + # Skru av tegne-animasjon wheel.tracer(False) @@ -124,7 +135,203 @@ def main(): # Tegn teksten wheel.penup() - wheel.setx(-300) + wheel.setx(-350) + currXY = wheel.pos() + wheel.pendown() + wheel.write("Radius: " + str(radiusInt)) + wheel.penup() + wheel.sety(currXY[1] - 10) + wheel.pendown() + wheel.write("Points: " + str(pointsInt)) + wheel.penup() + wheel.sety(currXY[1] - 20) + wheel.pendown() + wheel.write("Multiplier: " + str(multiplier)) + wheel.penup() + wheel.sety(currXY[1] - 30) + wheel.pendown() + wheel.write("Animation: " + str(animation)) + wheel.penup() + wheel.sety(currXY[1] - 40) + wheel.pendown() + wheel.write("Dots: " + str(dots)) + wheel.penup() + wheel.sety(currXY[1] - 50) + wheel.pendown() + wheel.write("Tracer: " + str(tracer)) + wheel.penup() + + # Tegn sirkelen + wheel.goto(startPosition) + wheel.pendown() + drawCircle(wheel, radiusInt) + wheel.penup() + + # Calculate points + if dots: + calculatePoints(center, radiusInt, pointsInt, wheel, True, False) + else: + calculatePoints(center, radiusInt, pointsInt, wheel, False, False) + + # tegn korder + if animation: + if tracer: + drawChord(wheel, True, True) + else: + drawChord(wheel, True, False) + + + # Skjul skilpadden + wheel.hideturtle() + + # Refresh screen + turtle.update() + #wn.exitonclick() + turtle.done() + +def arrowUpKeyPress(): + + global multiplier + + wheel.clear() # Clear out the drawing (if any) + wheel.reset() + + multiplier = multiplier + 1 # Steps paa 1 + + # Faa sirkelen til aa starte aa tegnes radius fra sentrum + wheel.penup() + wheel.sety(radiusInt) + startPosition = wheel.pos() + + # Tegn teksten + wheel.penup() + wheel.setx(-350) + currXY = wheel.pos() + wheel.pendown() + wheel.write("Radius: " + str(radiusInt)) + wheel.penup() + wheel.sety(currXY[1] - 10) + wheel.pendown() + wheel.write("Points: " + str(pointsInt)) + wheel.penup() + wheel.sety(currXY[1] - 20) + wheel.pendown() + wheel.write("Multiplier: " + str(multiplier)) + wheel.penup() + wheel.sety(currXY[1] - 30) + wheel.pendown() + wheel.write("Animation: " + str(animation)) + wheel.penup() + wheel.sety(currXY[1] - 40) + wheel.pendown() + wheel.write("Dots: " + str(dots)) + wheel.penup() + wheel.sety(currXY[1] - 50) + wheel.pendown() + wheel.write("Tracer: " + str(tracer)) + wheel.penup() + + # Tegn sirkelen + wheel.goto(startPosition) + wheel.pendown() + drawCircle(wheel, radiusInt) + wheel.penup() + + # Calculate points + calculatePoints(center, radiusInt, pointsInt, wheel, False, False) + + # tegn korder + drawChord(wheel, False, False) + + + # Skjul skilpadden + wheel.hideturtle() + + # Refresh screen + turtle.update() + #wn.exitonclick() + turtle.done() + + +def arrowDownKeyPress(): + global multiplier + + wheel.clear() # Clear out the drawing (if any) + wheel.reset() + + multiplier = multiplier - 1 # Steps paa 1 + + # Faa sirkelen til aa starte aa tegnes radius fra sentrum + wheel.penup() + wheel.sety(radiusInt) + startPosition = wheel.pos() + + # Tegn teksten + wheel.penup() + wheel.setx(-350) + currXY = wheel.pos() + wheel.pendown() + wheel.write("Radius: " + str(radiusInt)) + wheel.penup() + wheel.sety(currXY[1] - 10) + wheel.pendown() + wheel.write("Points: " + str(pointsInt)) + wheel.penup() + wheel.sety(currXY[1] - 20) + wheel.pendown() + wheel.write("Multiplier: " + str(multiplier)) + wheel.penup() + wheel.sety(currXY[1] - 30) + wheel.pendown() + wheel.write("Animation: " + str(animation)) + wheel.penup() + wheel.sety(currXY[1] - 40) + wheel.pendown() + wheel.write("Dots: " + str(dots)) + wheel.penup() + wheel.sety(currXY[1] - 50) + wheel.pendown() + wheel.write("Tracer: " + str(tracer)) + wheel.penup() + + # Tegn sirkelen + wheel.goto(startPosition) + wheel.pendown() + drawCircle(wheel, radiusInt) + wheel.penup() + + # Calculate points + calculatePoints(center, radiusInt, pointsInt, wheel, False, False) + + # tegn korder + drawChord(wheel, False, False) + + + # Skjul skilpadden + wheel.hideturtle() + + # Refresh screen + turtle.update() + #wn.exitonclick() + turtle.done() + +def arrowRightKeyPress(): + global pointsInt + + wheel.clear() # Clear out the drawing (if any) + wheel.reset() + + if pointsInt <= 650: + pointsInt = pointsInt +50 # Steps paa 50 + + # Faa sirkelen til aa starte aa tegnes radius fra sentrum + wheel.penup() + wheel.sety(radiusInt) + startPosition = wheel.pos() + + # Tegn teksten + wheel.penup() + wheel.setx(-350) currXY = wheel.pos() wheel.pendown() wheel.write("Radius: " + str(radiusInt)) @@ -137,6 +344,18 @@ def main(): wheel.pendown() wheel.write("Multiplier: " + str(multiplier)) wheel.penup() + wheel.sety(currXY[1] - 30) + wheel.pendown() + wheel.write("Animation: " + str(animation)) + wheel.penup() + wheel.sety(currXY[1] - 40) + wheel.pendown() + wheel.write("Dots: " + str(dots)) + wheel.penup() + wheel.sety(currXY[1] - 50) + wheel.pendown() + wheel.write("Tracer: " + str(tracer)) + wheel.penup() # Tegn sirkelen wheel.goto(startPosition) @@ -148,7 +367,7 @@ def main(): calculatePoints(center, radiusInt, pointsInt, wheel, False, False) # tegn korder - drawChord(wheel, True, False) + drawChord(wheel, False, False) # Skjul skilpadden @@ -156,8 +375,92 @@ def main(): # Refresh screen turtle.update() - wn.exitonclick() + #wn.exitonclick() + turtle.done() + +def arrowLeftKeyPress(): + global pointsInt + + wheel.clear() # Clear out the drawing (if any) + wheel.reset() + + if pointsInt >= 100: + pointsInt = pointsInt - 50 # Steps paa 50 + + # Faa sirkelen til aa starte aa tegnes radius fra sentrum + wheel.penup() + wheel.sety(radiusInt) + startPosition = wheel.pos() + + # Tegn teksten + wheel.penup() + wheel.setx(-350) + currXY = wheel.pos() + wheel.pendown() + wheel.write("Radius: " + str(radiusInt)) + wheel.penup() + wheel.sety(currXY[1] - 10) + wheel.pendown() + wheel.write("Points: " + str(pointsInt)) + wheel.penup() + wheel.sety(currXY[1] - 20) + wheel.pendown() + wheel.write("Multiplier: " + str(multiplier)) + wheel.penup() + wheel.sety(currXY[1] - 30) + wheel.pendown() + wheel.write("Animation: " + str(animation)) + wheel.penup() + wheel.sety(currXY[1] - 40) + wheel.pendown() + wheel.write("Dots: " + str(dots)) + wheel.penup() + wheel.sety(currXY[1] - 50) + wheel.pendown() + wheel.write("Tracer: " + str(tracer)) + wheel.penup() + + # Tegn sirkelen + wheel.goto(startPosition) + wheel.pendown() + drawCircle(wheel, radiusInt) + wheel.penup() + + # Calculate points + calculatePoints(center, radiusInt, pointsInt, wheel, False, False) + + # tegn korder + drawChord(wheel, False, False) + + # Skjul skilpadden + wheel.hideturtle() + + # Refresh screen + turtle.update() + #wn.exitonclick() + turtle.done() + +def keyExit(): + sys.exit() + +def toggleDots(): + global dots + if dots: + dots = False + else: + dots = True setup() -main()
\ No newline at end of file + +wn.onkey(arrowUpKeyPress, "Up") # increase multiplier +wn.onkey(arrowDownKeyPress, "Down") # decrease multiplier +wn.onkey(arrowRightKeyPress, "Right") +wn.onkey(arrowLeftKeyPress, "Left") +wn.onkey(wn.bye, "q") +wn.onkey(toggleDots, "d") + +wn.listen() + +main() + |