galette.py

Created by schraf

Created on December 27, 2023

875 Bytes

Playlist YouTube sur la NUMWORKS

Vous êtes de corvée pour découper la galette des rois ? Certaines personnes veulent despetites parts et d’autres des parts normales ? Pas de panique, votre NUMWORKS va vous aider !

Outils nécessaires

Une galette des rois, une NUMWORKS et une règle graduée

Exemple n°1

La galette fait 24cm de diamètre, 3 personnes veulent une part normale et 2 personnes des parts petites (c’est-à-dire la moitié d’une part normale)

Exécutez le programme puis var et galette :

>>> from galette import *
>>> galette(24,3,2))

Mesurez 16.97 cm (disons 17 cm) trois fois, cela correspond aux 3 parts normales puis 9.18 cm (disons 9 cm) ce qui permet d’avoir les parts deux fois plus petites.

Exemple n°2

La galette fait 20cm de diamètre, 5 personnes veulent une part normale et 1 personne veut une part petite

Exécutez le programme puis var et galette :

>>> from galette import *
>>> galette(20,5,1))

Mesurez 10.81 cm (disons 11 cm) cinq fois, cela correspond aux 5 parts normales, la part restant sera la petite.

Exemple n°3

La galette fait 18cm de diamètre, 3 personnes veulent une part normale

Exécutez le programme puis var et galette :

>>> from galette import *
>>> galette(18,3,0))


from math import *
from kandinsky import *
from turtle import *

def line(x1, y1, x2, y2, coul):
 penup()
 goto(x1, y1)
 color(coul)
 pendown()
 goto(x2, y2)

def galette(diam, normal, small):
 global a
 nb = 2 * normal + small
 penup()
 color((0, 0, 0))
 goto(0, -100)
 pendown()
 circle(100)
 a = 0
 a = affiche(2, nb, normal, (255, 0, 0))
 a = affiche(1, nb, small, (0, 0, 255))
 y1 = 10
 if normal > 0:
  lnor = round(diam * sin(2 * pi / nb), 2)
  draw_string(str(lnor), 10, y1, (255, 0, 0))
  y1 += 18
 if small > 0:
  lsma = round(diam * sin(pi / nb), 2)
  draw_string(str(lsma), 10, y1, (0, 0, 255))
 hideturtle()

def affiche(c, nb, taille, coul):
 global a
 for i in range(taille):
  r = 2 * c * pi / nb
  x1 = 100 * cos(a)
  y1 = 100 * sin(a)
  line(0, 0, x1, y1, (0, 0, 0))
  line(x1, y1, 100 * cos(a + r), 100 * sin(a + r), coul)
  a += r
 return a

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.