Bonjour,
Je me demandais si quelqu'un pouvait m'aider à modifier ce code. J'aimerai ensuite y annexer un graphique (déjà codé) mais je n'arrive pas à les connecter ensemble. De plus, j'aimerai rajouter un paramètre : les forces de frottements qui ralentissent le pendule au cours du temps.
Merci
# -*- coding: cp1252 -*-
from math import sin, pi
from time import sleep
from turtle import *
g = 9.80665 # Gravitational Acceleration (meters per second squared)
FORM = 'Time={:6.3f}, Angle={:6.3f}, Speed={:6.3f}' #??#
def main(): #définir certains paramètres#
length = 9.0 # Of pendulum (meters)
f_rappel = - g / length # Negative G over L
total_time = 0.0 # Seconds (??)
angle = 1.0 # Initial angle of pendulum (radians)
speed = 0.0 # Initial angular velocity (radians/second) si différent de 0, impose force extérieure ?? #
time_step = 0.05 # Seconds : nombre de secondes entre chaque image (fluidité)
while total_time < 30.0: # temps d'affichage Turtle #
total_time += time_step #conditions pour que Turtle fonctionne #
speed += f_rappel * sin(angle) * time_step
angle += speed * time_step
#print(FORM.format(total_time, angle, speed))
if draw(angle, length): break #??#
sleep(time_step) #??#
def init():
setup()
mode('logo')
radians()
speed(0)
hideturtle()
tracer(False)
penup()
def draw(angle, length):
if speed() != 0: return True # != : différent de#
clear()
setheading(angle + pi) #orientation de la fonction avec l'angle => oscille de 180°#
pensize(max(round(length), 1 ))
pendown()
forward(length * 25) #longueur de la corde affichée #
penup()
dot(length * 10) #Modifie taille de la bille#
home() #Point d'origine du pendule à (0,0) => comment le modifier ? #
update() #??#
if __name__ == '__main__':
init()
main()
bye()
Partager