aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakobS1n <jakob@Jakobs-MacBook-Pro.local>2016-03-19 10:44:40 +0100
committerJakobS1n <jakob@Jakobs-MacBook-Pro.local>2016-03-23 15:45:17 +0100
commitca9e0dab78d974f9616b23fbfe05185034d06eeb (patch)
tree756efb8f203d16979ab8f10b82d0bc51c1d772f6
parent9b7f5836ee3cf48e2f4ad8ac672f8aecc078dbe7 (diff)
downloadmath-draw-ca9e0dab78d974f9616b23fbfe05185034d06eeb.tar.gz
math-draw-ca9e0dab78d974f9616b23fbfe05185034d06eeb.zip
Stable
added keypress events
-rw-r--r--math-draw.py319
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()
+