pythagoras_opgave_05.py

Created by numworks-nl

Created on May 03, 2023

2.3 KB


# Turtle
# Pythagoras Olympiade opgave 374 (Jaargang 57/4, Oplossing Jaargang 58/1)
# Hieronder is een schets met twee regelmatige achthoeken en
# twee gelijkzijdige driehoeken. Je kunt je voorstellen dat je
# dit patroon herhaalt. Kom je dan precies bij het begin uit?
# Bonuspunt
# Voor welke regelmatige n-hoek (n > 6) kun je een patroon
# creeren waarbij je precies terugkeert bij het begin.
# Klik steeds op het rode vierkant in het midden om verder te gaan
# (1) Plaatje schetsen horende bij deze opgave
# (2) Plaatje oplossing schetsen horende bij deze opgave
# (3) Andere oplossingen schetsen
# Voor de uitwerking van deze opgave zie
# https://www.pyth.eu/oplossingen-pythagoras-olympiade-57-4
### Voor de uitwerking van deze opgave zie
### https://www.pyth.eu/oplossingen-pythagoras-olympiade-57-4
import turtle
import ion
import time

DATA = [(20, 30, 8, 24, 2), (12, 50, 8, 24, 12),
        (8, 54, 7, 42, 21), (12, 36, 9, 18, 9),
        (10, 20, 12, 12, 6), (10, 16, 15, 10, 5), (8, 10, 24, 8, 4),
        ]
MAXCNT = 6
def Button():
  # Tekenen van rode button in het midden
  turtle.color('black')
  turtle.penup()
  turtle.goto(-15,-15)
  turtle.pendown()
  for m in range(4):
    turtle.forward(30)
    turtle.left(90)
  turtle.penup()
  turtle.goto(0,0)
  return

def Draw():
  global cnt
  (Lengte, InitialisatieLengte, Hoeken1, Hoeken2, Herhalingen) = DATA[cnt]
  turtle.reset()
  Button()
  # Turtle wordt naar juiste positie verplaatst
  turtle.pendown()
  turtle.left(90)
  turtle.penup()
  turtle.forward(InitialisatieLengte)
  turtle.left(90)
  turtle.forward(Lengte/2)
  turtle.pendown()
  turtle.left(180)
  # Tekenen van figuur
  for m in range(Herhalingen):
    turtle.color('black')
    for k in range(Hoeken1):
      turtle.forward(Lengte)
      turtle.left(360/Hoeken1)
    turtle.forward(Lengte)
    turtle.right(360/Hoeken2)
    turtle.color('black')
    for k in range(3):
      turtle.forward(Lengte)
      turtle.left(120)
    turtle.forward(Lengte)
    turtle.right(360/Hoeken2)
  # Turtle wordt weer terug geplaatst
  turtle.penup()
  turtle.goto(0,0)
  turtle.pendown()
  turtle.setheading(0)
  # Gereed maken van doorgaan of stoppen
  cnt += 1
  return

cnt = 0
turtle.speed(0)
Button()


while True:
  if ion.keydown(ion.KEY_EXE):
    Draw()
  time.sleep(0.01)
  if cnt == MAXCNT:
    break

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.