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

Python Discussion :

problème appel de fonction


Sujet :

Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut problème appel de fonction
    bonjour, j'utilise python idle, et j'ai un problème pour appeler une fonction.

    Ce que j'ai fait :
    - j'ai créé ma fonction : def rotation(point, angle) : etc
    - je défini un point P
    - j'appelle ma fonction pour voir si ça marche : print rotation(P,90)
    et ça ne marche pas, pourtant il me semble bien que quand j'ai écris ce programme sous pythonwin ça fonctionnait, qqn sait pourquoi ?

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    bonjour,

    peux-tu poster ton code pour que l'on puisse t'aider.

    merci

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Voilà mon code, jusqu'à l'endroit où ça bloque :
    ( c'est le code d'un TD que j'avais fait sous pythonwin, ça marchait, maintenant je veux le lancer depuis mon pc sur lequel y a idle et ça ne marche plus, il doit y avoir une différence de synthaxe entre win et idle. Le but du programme est de créer une animation où on voit un cube se translater et tourner suivant les 3 dimensions)


    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
    import pygame,math,time
    import numpy as np
     
     
    RED=(255,0,0)
    GREEN=(0,255,0)
    BLUE=(0,0,255)
    BLACK=(0,0,0)
    GRAY=(128,128,128)
    WHITE=(255,255,255)
    YELLOW=(0,255,255)
     
     
    def drawFace(screen,face,color=(0,0,255),echelle=200,centre=(512,400)):
        npoints=face.shape[0]
        for i in range(0,npoints-1):
            pygame.draw.aaline(screen, color, \
                  (centre[0]+echelle*face[i,0]/face[i,2], centre[1]-echelle*face[i,1]/face[i,2]), \
                  (centre[0]+echelle*face[i+1,0]/face[i+1,2], centre[1]-echelle*face[i+1,1]/face[i+1,2]))
        pygame.draw.aaline(screen, color, \
              (centre[0]+echelle*face[npoints-1,0]/face[npoints-1,2], centre[1]-echelle*face[npoints-1,1]/face[npoints-1,2]), \
              (centre[0]+echelle*face[0,0]/face[0,2], centre[1]-echelle*face[0,1]/face[0,2]))
     
    def cube(L):
        faceA=np.matrix([[float(L)/2,-float(L)/2,float(L)/2],[float(L)/2,float(L)/2,float(L)/2],[float(L)/2,float(L)/2,-float(L)/2],[float(L)/2,-float(L)/2,-float(L)/2]])
        faceB=np.matrix([[float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,-float(L)/2],[float(L)/2,-float(L)/2,-float(L)/2]])
        faceC=np.matrix([[float(L)/2,-float(L)/2,float(L)/2],[float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,-float(L)/2,float(L)/2]])
        faceD=(-1)*faceA
        faceE=(-1)*faceB
        faceF=(-1)*faceC
        return [faceA, faceB, faceC, faceD, faceE, faceF]
     
    cube(2)
     
     
    screen = pygame.display.set_mode((1024, 800))
    running = 1
     
     
     
    face1=np.matrix([[0.5,-0.5,3],[-0.5,0.5,3],[0.5,0.5,3],[0.5,-0.5,3]])
    face2=np.matrix([[-3.5,-0.5,3],[-3.5,0.5,3],[-2.5,0.5,3.5],[-2.5,-0.5,3.5]])
    face3=np.matrix([[2.5,-0.5,3.5],[2.5,0.5,3.5],[3.5,0.5,3],[3.5,-0.5,3]])
     
     
     
    def translation(face, dx, dy,dz):
        X=np.matrix([[dx,0,0],[dx,0,0],[dx,0,0],[dx,0,0]])
        Y=np.matrix([[0,dy,0],[0,dy,0],[0,dy,0],[0,dy,0]])
        Z=np.matrix([[0,0,dz],[0,0,dz],[0,0,dz],[0,0,dz]])
        T=X+Y+Z
        return face+T
     
     
     
    def rotation(point,a):
        M=[[math.cos(a),math.sin(a),0],[-math.sin(a),math.cos(a),0],[0,0,1]]
        R=(point)*M
        return R
     
    P=np.matrix([0,0,1])    
    print rotation(P,90)

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Si tu ouvres une invite de commande et que tu te places dans le dossier contenant ton script, est-ce que la commande suivante fonctionne?
    (en remplacant mon_script par le nom de ton script, bien sûr).

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    rien ne se passe si j'ouvre une nouvelle fenêtre et que je fais ce que tu dis.
    Mon code est bon ? Il y a pas une erreur de syntaxe ?
    Si je le lance, il me dit qu'il y a une erreur de synthaxe dans la dernière ligne, mais je ne vois vraiment pas quoi changer.

  6. #6
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    poste ton erreur, s'il te plait.

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ça me met invalide synthax et ça surligne en rouge le mot rotation dans ma dernière ligne.

    Si je supprime les lignes où je teste mes fonctions, il me dit que numpy n'existe pas, donc je dois pas l'avoir sur mon PC, vous savez où je peux le télécharger ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    N'aurais-tu pas installé Python 3.x alors que ton script utilise la syntaxe 2.x ?
    Change la dernière ligne en ceci (print est devenu une fonction en 3.x):
    PS: dans 'syntaxe' il n'y a pas de 'h'

  9. #9
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    ouiiiiiiiiiii c'est ça !! merci beaucoup !
    Et pour numpy, qqn sait où je peux le télécharger ?

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par luckylucky Voir le message
    Et pour numpy, qqn sait où je peux le télécharger ?
    http://sourceforge.net/projects/numpy/files/

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    arf, ce lien est pour la version 2.6, t'as pas un lien pour la version 3.1 stp ?

  12. #12
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    AFAIK, numpy n'a pas encore été porté sous Python 3.
    Si tu ne peux pas t'en passer, tu devrais plutôt installer Python 2.6.

Discussions similaires

  1. problème appel de fonction
    Par pepsi33 dans le forum C++
    Réponses: 7
    Dernier message: 30/09/2007, 14h03
  2. Problème appel de fonction
    Par pepsi33 dans le forum C++
    Réponses: 1
    Dernier message: 30/09/2007, 11h40
  3. problème appel à une fonction pl/sql
    Par tommey dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2007, 14h19
  4. [PHP-JS] Problème appel de fonction php
    Par Didibzh dans le forum Langage
    Réponses: 10
    Dernier message: 12/06/2007, 16h55
  5. Réponses: 10
    Dernier message: 08/12/2006, 02h18

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