IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

fusion de 2 programmes


Sujet :

Programmation multimédia/Jeux Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Prépa BCPST
    Inscrit en
    Février 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Prépa BCPST

    Informations forums :
    Inscription : Février 2021
    Messages : 13
    Par défaut fusion de 2 programmes
    Bonjour,
    J'ai 2 programmes que j'aurais aimé fusionner dans le cadre d'un projet informatique. Cependant, un des soucis est que l'un des programmes utilise matplotlib et l'autre utilise tkinter.
    Je me demandais alors comment transvaser le programme (en matplotlib) en tkinter (ce programme est un peu compliqué. C'est un programme qui modélise des courbes de Béziers)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    import math
    import matplotlib
    import matplotlib.pyplot as plt
    from matplotlib.pyplot import *
     
     
     
    def combinaison_lineaire(A,B,u,v):
        return [A[0]*u+B[0]*v,A[1]*u+B[1]*v]
     
    def interpolation_lineaire(A,B,t):
        return combinaison_lineaire(A,B,t,1-t)
     
    def vecteur_unitaire(P1,P2):
        Ux = P2[0]-P1[0]
        Uy = P2[1]-P1[1]
        norme = math.sqrt(Ux*Ux+Uy*Uy)
        if norme!=0:
            return [Ux/norme,Uy/norme]
        else:
            return False
     
    def test_alignement_4pts(points,epsilon):
        U1 = vecteur_unitaire(points[0],points[1])
        U2 = vecteur_unitaire(points[1],points[2])
        U3 = vecteur_unitaire(points[2],points[3])
        if U2:
            x = 2.0-(U1[0]*U2[0]+U1[1]*U2[1]+U2[0]*U3[0]+U2[1]*U3[1])
        else:
            x = 1.0-(U1[0]*U3[0]+U1[1]*U3[1])
        if abs(x) < epsilon:
            return True
        else:
            return False
     
    def division_courbe_bezier_3(points_control):
        P01 = interpolation_lineaire(points_control[0],points_control[1],0.5)
        P12 = interpolation_lineaire(points_control[1],points_control[2],0.5)
        P23 = interpolation_lineaire(points_control[2],points_control[3],0.5)
        P01_12 = interpolation_lineaire(P01,P12,0.5)
        P12_23 = interpolation_lineaire(P12,P23,0.5)
        Q = interpolation_lineaire(P01_12,P12_23,0.5)
        return ([points_control[0],P01,P01_12,Q],[Q,P12_23,P23,points_control[3]])
     
    def courbe_bezier_3_recursif(points_control,epsilon,pile_points_courbe):
        if test_alignement_4pts(points_control,epsilon):
            pile_points_courbe.append(points_control[0])
        else:
            (points_1,points_2) = division_courbe_bezier_3(points_control)
            courbe_bezier_3_recursif(points_1,epsilon,pile_points_courbe)
            courbe_bezier_3_recursif(points_2,epsilon,pile_points_courbe)
     
    def courbe_bezier_3_recursif_init(points_control,epsilon):
        pile_points_courbe = []
        courbe_bezier_3_recursif(points_control,epsilon,pile_points_courbe)
        pile_points_courbe.append(points_control[-1])
        return pile_points_courbe
     
    def plot_points(points_courbe,style='-'):
        x = []
        y = []
        for p in points_courbe:
            x.append(p[0])
            y.append(p[1])
        plot(x,y,style)
     
    class Courbe:
        def __init__(self,P0,P1,P2,P3,epsilon):
            self.points_courbe = []
            self.epsilon = epsilon
            self.bezier_3_recursif_init([P0,P1,P2,P3])
            self.points_control = [P0,P1,P2,P3]
        def bezier_3_recursif_init(self,points_control):
            courbe_bezier_3_recursif(points_control,self.epsilon,self.points_courbe)
            self.P2 = points_control[2]
            self.P3 = points_control[3]
        def ajouter(self,P2,P3):
            P0 = self.P3
            P1 = [P0[0]+P0[0]-self.P2[0],P0[1]+P0[1]-self.P2[1]]
            self.bezier_3_recursif_init([P0,P1,P2,P3])
            self.points_control.append(P1)
            self.points_control.append(P2)
            self.points_control.append(P3)
            self.dernier_point = P3
        def liste_points(self):
            self.points_courbe.append(self.dernier_point)
            return self.points_courbe
        def liste_points_control(self):
            self.points_control.append(self.dernier_point)
            return self.points_control
     
    courbe = Courbe([0,0],[0,1],[1,1],[1,0],5e-3)
    courbe.ajouter([2,0],[3,0])
    courbe.ajouter([3,1],[2,1.5])
    courbe.ajouter([3,3],[4,2])
    points = courbe.liste_points()
    points_control = courbe.liste_points_control()
    matplotlib.pyplot.figure()
    plot_points(points,style='.')
    plot_points(points,style='r-')
    plot_points(points_control,'o')
    axis([0,5,-4,4])
    grid()
    plt.show()
    Merci de votre réponse!
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Fusion de deux programmes
    Par Cantabil dans le forum Arduino
    Réponses: 3
    Dernier message: 19/08/2018, 23h51
  2. Réponses: 4
    Dernier message: 19/08/2016, 12h52
  3. Fusion de 2 programmes java
    Par Moussy dans le forum Général Java
    Réponses: 0
    Dernier message: 05/12/2009, 21h37
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo