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

C Discussion :

[Linux] Déplacement de plusieurs points


Sujet :

C

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut [Linux] Déplacement de plusieurs points
    Bonsoir,

    [Travail sous linux]

    Suite à un exercice, j'ai écris un programme qui m'affiche un point ce déplassant à l'écran.

    J'aimerai pouvoir en afficher plusieurs, comment faire ?

    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
    #include <stdlib.h>
    #include <stdio.h>
     
    //fonction point
    void point(int* x, int* y, int* dx, int* dy)
    {
    //affichage et déplacement du point
    	while(1)
    	{	
    		printf("\033[%ld;%ldH*",*y,*x);
     
    		fflush(stdout);
     
    		*x+=*dx;
    		*y+=*dy;
     
    		if((*x<1)||(*x>100))
    		{
    			*dx=-*dx;
    		}
     
    		if((*y<1)||(*y>30))
    		{
    			*dy=-*dy;
    		}
     		usleep(50000);
    		printf("\033[H\033[2J");
    	}
    }
     
    main()
    {
     
    	//déclaration des variables
    	int x,y,a,b;
    	int dx,dy,da,db;
     
    	// initialisation des variables		
    	x=5;
    	y=5;
    	dx=5;
    	dy=5;
     
        point(&x, &y, &dx, &dy);
     
     
    }
    Auriez-vous des idées ou des exemples de codes ?

    Merci d'avance

    Arnaud

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Salut,

    Il te faudrait passer un tableau de Point a ta fonction et itérerer dessus pour les afficher (a toi d'initialiser chaque point de sa position de départ et aussi sa vitesse de déplacement tant qu'a faire)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    ok, mais on fait comment ?

    Tu aurais un exemple simple ?

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Tu commences par définir une structure d'un point dans un fichier Point.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef struct Point {
      int x,y,v; 
    };
    Tu alloues ensuite dans ton programme le nombre de point que tu souhaites , tu les initialises et tu appelles ta fonction d'affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Point points [2] ;
    points[0].x=5;points[0].y=5;points[0].v=5;
    points[1].x=15;points[1].y=50;points[1].v=5;
    affiche(points,2);
    Ensuite tu peux faire de différentes façons en dissociant une fonction pour le déplacement et une autre pour l'affichage (ici je les ai fusionnée)

    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
     
    void affiche (Point *pPoints, unsigned int pnbPoint) {
     
       int i;
      while (42){
         for(i=0;i<pnbPoint;i++) {
              //affichage du point
              printf("\033[%ld;%ldH*",pPoints[i].x,pPoints[i].y);
              //déplacement du point
               pPoints[i].x+=pPoints[i].v;
               pPoints[i].y+=pPoints[i].v;         
               //controle depassemet ecran
                if((pPoints[i].x<1)||(pPoints[i].x>100))
    		{
    			pPoints[i].x-=pPoints[i].v
    		}
     
    		if((pPoints[i].y<1)||(pPoints[i].y>30))
    		{
    			pPoints[i].y-=pPoints[i].v
    		}
          }
     	usleep(50000);
    	printf("\033[H\033[2J");
        }
     
    }
    PS:désolé pour l'indentation il faut que je trouve un éditeur.

  5. #5
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par hegros

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef struct Point {
      int,x,y,v; 
    };
    Attention, tu as fait une faute de frappe: pas de virgule apres int et le nom du typedef doit etre apres la deuxieme accolade:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    typedef struct
    {
       int x, y, z;
    } Point;

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par DaZumba
    Attention, tu as fait une faute de frappe: pas de virgule apres int et le nom du typedef doit etre apres la deuxieme accolade:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    typedef struct
    {
       int x, y, z;
    } Point;
    Il me semblait qu'écrire le nom aprés la deuxiéme accolade ou après le mot clé struct ne changeait rien.Me trompe-je ?

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par hegros
    Il me semblait qu'écrire le nom aprés la deuxiéme accolade ou après le mot clé struct ne changeait rien.Me trompe-je ?
    Eh bien tu peux ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct s_mystruct { int i };
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef struct { int i; } t_mytype;
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef struct s_mystruct { int i; } t_mytype;
    ce qui est plus ou moins équivalent (le typedef est plus simple d'utilisation, car on n'a pas a se trimballer le mot cle struct).

  8. #8
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Merci DaZumba en fait je connaissais ces écritures mais ca réponds pas trop à pourquoi ma façon n'est pas correcte

    J'ai édité le code.

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par DaZumba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct s_mystruct { int i };
    C'est une simple question de style, mais préfixer mystruct avec 's_' est redondant. De toute manière, lors de la définition d'une variable de ce type, le mot clé struct est nécessaire en C:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct s_mystruct objet = {0};
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par hegros
    Merci DaZumba en fait je connaissais ces écritures mais ca réponds pas trop à pourquoi ma façon n'est pas correcte

    J'ai édité le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef struct Point {
        int x, y, z;
    };
    n'est pas une syntaxe correcte pour la définition d'un alias de type, ou en tout cas ne définit aucun type Point.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  11. #11
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Bon, ça a été dit et redit, et reredit,mais je le repete

    Il y a deux prototypes possibles pour la fonction main dans la norme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int main(void)
     
    int main(int argc, char * argv[])
    La norme là n'est pas respectée partout (elle l'est dans gcc, mais pas dans le compilateur visual C++).

    Tu aurais eu plusieurs warning si tu avais compilé avec quelques option : Au minimum -Wall, tu peux ajouter -Wmain -W. Voir : http://emmanuel-delahaye.developpez....tm#cfg_compilo

    Donc, ne pas oublier de lui faire renvoyer un entier au retour de la fonction. (souvent : return EXIT_SUCCESS

    Au passage, une fonction dont le prototype est : fonction() ne signifie pas que cette fonction n'a pas de paramètres (c'est une différence avec le C++). Cela signifie que ses paramètres ne sont pas déclarés. Il faut utiliser fonction(void)

    Ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int fonction();
     
    int fonction(int i)
    {
     return i;
    }
    Compile, mais pas la version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int fonction(void);
     
    int fonction(int i)
    {
     return i;
    }

  12. #12
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par mujigka
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    typedef struct Point {
        int x, y, z;
    };
    n'est pas une syntaxe correcte pour la définition d'un alias de type, ou en tout cas ne définit aucun type Point.

    Thierry
    merci me suis embrouillé un peu j'ai donc rééditer avec mon code d'origine

  13. #13
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par mujigka
    C'est une simple question de style, mais préfixer mystruct avec 's_' est redondant.
    Oui bien sur, c'est une question de style. J'ai juste pris l'habitude de prefixer les structures avec s_, les typedefs avec t_, et les enumerations avec e_. Et cette habitude deteint sur mes posts

  14. #14
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par DaZumba
    Oui bien sur, c'est une question de style. J'ai juste pris l'habitude de prefixer les structures avec s_, les typedefs avec t_, et les enumerations avec e_. Et cette habitude deteint sur mes posts
    <Style>
    Lorsque je lis:
    je me doute bien que t_Point est définit à l'aide d'un typedef. Je me demande bien à quoi cela sert (on peut utiliser un typedef pour aliaser n'importe quel type). Je trouve plus pertinent d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct Point {
        int x, y;
    } s_Point;  /* Moi, c'est plutôt Point_s*/
     
    s_Point pt;
    Ce qui nous rappelle que Point est représenté par une structure. struct Point n'a pas besoin de préfixe, car la présence de struct est explicite.

    Mais bon, on entre ici dans le domaine du subjectif, et les standards de codage sont souvent imposés.
    </Style>

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    euhh..

    juste pour revenir à la question d'origine, je pense que ton idée n'était pas mauvaise, mais son implémentation péchait par plusieurs défauts.

    moi je verrais bien un truc comme ça :

    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
     
    #include <stdlib.h>
    #include <stdio.h> 
     
     
    /*
     *
     * A f f i c h e _ P o i n t
     */
    static void Affiche_Point ( int x, int y )
    {
         printf("\033[%d;%dH*",y,x);
     
         fflush(stdout);
    }
     
     
    /*
     * D e p l a c e_ P o i n t
     *
    */
    static void Deplace_Point ( int *x, int *y, int dx, int dy )
    {
        *x = *x + dx;
        *y = *y + dy;
    }
     
     
    /*
     *
     * A j u s t e _ D e l t a
     *
    */
    static void Ajuste_Delta ( int x, int y, int *dx, int *dy )
    {
          if ( (x<1) || (x>100) )
            {
    	*dx = -*dx;
            }
     
          if ( (y<1) || (y>30) )
            {
    	*dy=-*dy;
            }
     }
     
     
    /*
     *
     * E x e c u t e _ F o n c t i o n a l i t e
     *
    */
    static int Execute_Fonctionalite ( void )
    {
    //déclaration des variables
       int x,y ;
       int dx,dy ;
     
    // initialisation des variables		
       x=5;
       y=5;
       dx=5;
       dy=5;
     
    // Affiche le point de départ
     
       Affiche_Point ( x, y );
     
     
    // Boucle
     
       while(1)
         {
            Ajuste_Delta ( x, y, &dx, &dy );
     
            Deplace_Point(&x, &y, dx, dy);
     
            Affiche_Point ( x, y );
     
     
            // Attente et reprise
     
            usleep(50000);
            printf("\033[H\033[2J");
         }
     
       return 0 ;
    }
     
     
     
    /*
     *
     * M a i n 
     *
    */
    int main(void)
    {
       int statut ;
     
       statut = Execute_Fonctionalite();
     
       return statut ;
    }
    [EDIT]
    Pour plusieurs points, il suffit djuste de faire un tableau dans la fontion Execute_Fonctionailte
    [/EDIT]

  16. #16
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    Merci pour vos explications, je vais regarder ça en détail.

  17. #17
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Il faut juste encore inclure l'en-tête unistd.h pour que usleep() soit déclarée...

    Meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  18. #18
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    J'ai essayer de travaillé la solution de souviron34.

    Je comprend bien se qu'il a voulu faire, après niveau affichage sur la console, je ne comprend pas trop.

    j'ai une chose de ce genre (sachant que le point s'éfface au fur et à mesure) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    *
      *
        *
     
    *
      *
        *
     
    *
      *
        *
     
    ...

    sur une bonne longueur de page.

    J'ai donc plusieurs points qui réalisent la même trajectoire, mais sur une très longue page...

    une explication ?

  19. #19
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    J'ai essayé le code de souviron34, et chez moi, il fonctionne.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  20. #20
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    Ah ok,

    Bah moi aussi ca fonctionne, mais les autres points, sorte des limites d'affichages programmé.

    Ca te donne quoi chez toi ?

Discussions similaires

  1. courbes moyennes en fonction de plusieurs points sur un graphique
    Par jeanGuignol dans le forum Débuter avec Java
    Réponses: 0
    Dernier message: 26/09/2008, 08h51
  2. [Sérialisaton] plusieurs points d'entrées
    Par Deallyra dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 22/05/2008, 15h12
  3. plusieurs points d'accés pour le même ESSID.
    Par bouha_1 dans le forum Réseau
    Réponses: 3
    Dernier message: 17/09/2007, 08h38
  4. [VB.NET2.0] Impossible de charger un plusieurs points d'arrêt
    Par daner06 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/06/2006, 00h28
  5. Thread - Déplacement d'un point à un autre
    Par aymron dans le forum Graphisme
    Réponses: 4
    Dernier message: 26/11/2005, 00h37

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