que de galères avec ce 18.04 ...
voici un code
qui reproduit le phénomène sous 18.04 sans utiliser de gif
ce qui est d'autant plus intéressant et troublant
... et, bien sûr, pas de soucis sous 16.04
#!/usr/bin/env python 3
# -*- coding: UTF8 -*-
# script animation_balle.py
#(C) Fabrice Sincère
from tkinter import *
import math,random
LARGEUR = 800
HAUTEUR = 320
RAYON = 10 # rayon de la balle
# position initiale au milieu
X = LARGEUR/2
Y = HAUTEUR/2
# direction initiale aléatoire
vitesse = random.uniform(1.8,2)*5
angle = random.uniform(0,2*math.pi)
DX = vitesse*math.cos(angle)
DY = vitesse*math.sin(angle)
def deplacement():
""" Déplacement de la balle """
global X,Y,DX,DY,RAYON,LARGEUR,HAUTEUR
# rebond à droite
if X+RAYON+DX > LARGEUR:
X = 2*(LARGEUR-RAYON)-X
DX = -DX
# rebond à gauche
if X-RAYON+DX < 0:
X = 2*RAYON-X
DX = -DX
# rebond en bas
if Y+RAYON+DY > HAUTEUR:
Y = 2*(HAUTEUR-RAYON)-Y
DY = -DY
# rebond en haut
if Y-RAYON+DY < 0:
Y = 2*RAYON-Y
DY = -DY
X = X+DX
Y = Y+DY
# affichage
Canevas.coords(Balle,X-RAYON,Y-RAYON,X+RAYON,Y+RAYON)
# mise à jour toutes les 50 ms VITESSE
# Mafenetre.after(50,deplacement)
Mafenetre.after(10,deplacement)
# Création de la fenêtre principale
Mafenetre = Tk()
Mafenetre.title("Animation Balle")
# Création d'un widget Canvas
Canevas = Canvas(Mafenetre,height=HAUTEUR,width=LARGEUR,bg='white')
mots = Canevas.create_text(int(400), int(230),
text="XXXsalut mon grandXXX",
font=("Courrier", int(40), 'bold'),
anchor='center', fill="red")
Canevas.pack(padx=5,pady=5)
# Création d'un objet graphique
Balle = Canevas.create_oval(X-RAYON,Y-RAYON,X+RAYON,Y+RAYON,width=1,fill='green')
deplacement()
Mafenetre.mainloop()