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

Calcul scientifique Python Discussion :

modifier penrose python


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par défaut modifier penrose python
    Bonjour je travaille sur penrose avec python et il m'a été demandé de modifier différents paramètres et je ne vois pas comment modifier ou ajouter de nouvelles choses à mon programme , le voici =

    import math
    import cmath
    import cairo
    import Image, ImageTk
    import Tkinter as Tk


    #------ Configuration --------
    IMAGE_SIZE = (1000, 1000)
    NUM_SUBDIVISIONS = 4
    #-----------------------------

    ### on définit le nombre d'or
    goldenRatio = (1 + math.sqrt(5)) / 2

    ## on définit une fonction "subdiviser" pour les triangles bleu (1) et les triangles rouges(0), les nouveaux triangles seront envoyés dans la liste
    def subdivide(triangles):
    result = []
    for color, A, B, C in triangles:
    if color == 0:
    # Subdivide red triangle
    P = A + (B - A) / goldenRatio
    result += [(0, C, P, B), (1, P, C, A)]
    else:
    # Subdivide blue triangle
    Q = B + (A - B) / goldenRatio
    R = B + (C - B) / goldenRatio
    result += [(1, R, C, A), (1, Q, R, B), (0, R, Q, A)]
    return result

    # Create wheel of blue triangles around the origin
    cos36=0.25*(1.+math.sqrt(5)) ## on remplace l'écriture cos36 par sa valeur mathématique
    lAB=0.5/cos36 ## on définit la longueur du segment AB
    triangles = []
    for i in xrange(5):
    C = cmath.rect(1, (2*i) *2.* math.pi / 10)
    A = cmath.rect(lAB, (2*i + 1) * 2.* math.pi / 10)
    triangles.append(( 1,A, 0j, C))

    for i in xrange(5):
    C = cmath.rect(1, (2*i) *2.* math.pi / 10)
    A = cmath.rect(lAB, (2*i - 1) * 2.* math.pi / 10)
    triangles.append(( 1,A, 0j, C))


    # Prepare cairo surface and Perform subdivisions

    for i in xrange(NUM_SUBDIVISIONS):

    triangles = subdivide(triangles)

    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, IMAGE_SIZE[0], IMAGE_SIZE[1])
    cr = cairo.Context(surface)
    cr.translate(IMAGE_SIZE[0] / 2.0, IMAGE_SIZE[1] / 2.0)
    wheelRadius = 0.5 * math.sqrt((IMAGE_SIZE[0] / 2.0) ** 2 + (IMAGE_SIZE[1] / 2.0) ** 2)
    cr.scale(wheelRadius, wheelRadius)

    # Draw red triangles
    for color, A, B, C in triangles:
    if color == 0:
    cr.move_to(A.real, A.imag)
    cr.line_to(B.real, B.imag)
    cr.line_to(C.real, C.imag)
    cr.close_path()
    cr.set_source_rgb(1.0, 0.35, 0.35)
    cr.fill()

    # Draw blue triangles
    for color, A, B, C in triangles:
    if color == 1:
    cr.move_to(A.real, A.imag)
    cr.line_to(B.real, B.imag)
    cr.line_to(C.real, C.imag)
    cr.close_path()
    cr.set_source_rgb(0.4, 0.4, 1.0)
    cr.fill()

    # Determine line width from size of first triangle
    color, A, B, C = triangles[0]
    cr.set_line_width(abs(B - A) / 10.0)
    cr.set_line_join(cairo.LINE_JOIN_ROUND)

    # Draw outlines
    for color, A, B, C in triangles:
    cr.move_to(C.real, C.imag)
    cr.line_to(A.real, A.imag)
    cr.line_to(B.real, B.imag)
    cr.set_source_rgb(0.2, 0.2, 0.2)
    cr.stroke()

    # Save to PNG
    surface.write_to_png('penrose'+str(i)+'.png')

    # Transformer en jpg

    im= Image.open('penrose'+str(i)+'.png')
    im.save("penrose"+str(i)+".jpg")

    # Afficher les image une après fermeture de la précédente

    root = Tk.Tk()

    image = Image.open('penrose'+str(i)+'.jpg')
    photo = ImageTk.PhotoImage(image)

    label = Tk.Label(image=photo)
    label.image = photo
    label.pack()

    root.mainloop()

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2013
    Messages : 247
    Par défaut
    1) Pourrais-tu SVP mettre ton programme sous forme "code" (pour cela colle-le, sélectionne -le et clique #)?

    2) Je comprends pas trop ta demande. Que veux-tu modifier?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Mai 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Mai 2013
    Messages : 3
    Par défaut penrose programme codé
    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
    106
    107
    108
    109
    110
    111
     
    import math
    import cmath
    import cairo
    import Image, ImageTk 
    import  Tkinter as Tk
     
     
    #------ Configuration --------
    IMAGE_SIZE = (1000, 1000)
    NUM_SUBDIVISIONS = 4
    #-----------------------------
     
    ### on définit le nombre d'or
    goldenRatio = (1 + math.sqrt(5)) / 2
     
    ## on définit une fonction "subdiviser" pour les triangles bleu (1) et les triangles rouges(0), les nouveaux triangles seront envoyés dans la liste
    def subdivide(triangles):
        result = []
        for color, A, B, C in triangles:
            if color == 0:
                # Subdivide red triangle
                P = A + (B - A) / goldenRatio
                result += [(0, C, P, B), (1, P, C, A)]
            else:
                # Subdivide blue triangle
                Q = B + (A - B) / goldenRatio
                R = B + (C - B) / goldenRatio
                result += [(1, R, C, A), (1, Q, R, B), (0, R, Q, A)]
        return result
     
    # Create wheel of blue triangles around the origin
    cos36=0.25*(1.+math.sqrt(5)) ## on remplace l'écriture cos36 par sa valeur mathématique
    lAB=0.5/cos36  ## on définit la longueur du segment AB 
    triangles = []
    for i in xrange(5):
        C = cmath.rect(1, (2*i) *2.* math.pi / 10)
        A = cmath.rect(lAB, (2*i + 1) * 2.* math.pi / 10)
        triangles.append(( 1,A, 0j, C))
     
    for i in xrange(5):
        C = cmath.rect(1, (2*i) *2.* math.pi / 10)
        A = cmath.rect(lAB, (2*i - 1) * 2.* math.pi / 10)
        triangles.append(( 1,A, 0j, C))
     
     
    # Prepare cairo surface and Perform subdivisions
     
    for i in xrange(NUM_SUBDIVISIONS):
     
        triangles = subdivide(triangles)
     
        surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, IMAGE_SIZE[0], IMAGE_SIZE[1])
        cr = cairo.Context(surface)
        cr.translate(IMAGE_SIZE[0] / 2.0, IMAGE_SIZE[1] / 2.0)
        wheelRadius = 0.5 * math.sqrt((IMAGE_SIZE[0] / 2.0) ** 2 + (IMAGE_SIZE[1] / 2.0) ** 2)
        cr.scale(wheelRadius, wheelRadius)
     
    # Draw red triangles
        for color, A, B, C in triangles:
            if color == 0:
                cr.move_to(A.real, A.imag)
                cr.line_to(B.real, B.imag)
                cr.line_to(C.real, C.imag)
                cr.close_path()
        cr.set_source_rgb(1.0, 0.35, 0.35)
        cr.fill()    
     
    # Draw blue triangles
        for color, A, B, C in triangles:
            if color == 1:
                cr.move_to(A.real, A.imag)
                cr.line_to(B.real, B.imag)
                cr.line_to(C.real, C.imag)
                cr.close_path()
        cr.set_source_rgb(0.4, 0.4, 1.0)
        cr.fill()
     
    # Determine line width from size of first triangle
        color, A, B, C = triangles[0]
        cr.set_line_width(abs(B - A) / 10.0)
        cr.set_line_join(cairo.LINE_JOIN_ROUND)
     
    # Draw outlines
        for color, A, B, C in triangles:
            cr.move_to(C.real, C.imag)
            cr.line_to(A.real, A.imag)
            cr.line_to(B.real, B.imag)
        cr.set_source_rgb(0.2, 0.2, 0.2)
        cr.stroke()
     
    # Save to PNG
        surface.write_to_png('penrose'+str(i)+'.png')
     
    # Transformer en jpg
     
        im= Image.open('penrose'+str(i)+'.png')
        im.save("penrose"+str(i)+".jpg")
     
    # Afficher les image une après fermeture de la précédente
     
        root = Tk.Tk() 
     
        image = Image.open('penrose'+str(i)+'.jpg') 
        photo = ImageTk.PhotoImage(image) 
     
        label = Tk.Label(image=photo)
        label.image = photo 
        label.pack()
     
        root.mainloop()

    Voila je voudrai voir quel modification il serait possible d apporter a ce programme ce que je pourrai retirer pour apporter des nouvelles options et comment le réaliser
    merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Comment modifier le contenu d'un noeud de type texte avec python?
    Par Tinkite82 dans le forum Général Python
    Réponses: 14
    Dernier message: 01/06/2010, 11h58
  2. [Blender] Modifier l'attribut scale d'un objet en Python
    Par saikouk dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 18/09/2009, 15h46
  3. [Bouml]modifier le générateur de code python
    Par cedrix57 dans le forum BOUML
    Réponses: 4
    Dernier message: 16/03/2009, 22h12
  4. Créer ou modifier un shell avec interface python et le lancer
    Par jameson dans le forum Général Python
    Réponses: 11
    Dernier message: 26/08/2008, 09h59
  5. Réponses: 3
    Dernier message: 31/05/2007, 01h52

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