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

Turbo Pascal Discussion :

[TPW] Déplacer un point sur une trajectoire


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut [TPW] Déplacer un point sur une trajectoire
    bonjour,
    je suis encore un élève au lycée, je veux faire une simple animation avec TPW 1.5 mais jusqu'à maintenant pas de solution.

    je veux faire déplacer un point sur l'écran sur la trajectoire:

    * 1er cas: d'un cercle
    * 2eme cas: carré
    * 3eme cas: rectangle

    donc le principe est de chercher les coordonnés (x,y) du point et vider l'écran avec la commande clrscr et afficher le point dans sa nouvelle place après un certain délais.

    le principe est simple mais je n'ai pas trouvé les fonctions nécessaires et j'ai trouvé beaucoup de problèmes lors de l'implémentation.

    AIIIIDDEEEEE SVP et merci

  2. #2
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Pour deplacer un cercle, le meilleur moyen est d' utiliser les coordonnées polaire. Mais on ne voit pas ça en terminale (enfin je crois).Mais c' est tres simple. Les coordonnées sont definies ainsi:
    x=r*cos(phi)
    y=r*sin(phi)
    où r est le rayon du cercle et phi un angle exprimé en radian.
    Pour decrire un cercle de rayon r, il te suffit de faire varier phi de 0 à 2*pi (2*3.14).

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    merci pour votre réponse mais il parait que je n'ai pas bien expliqué le problème. je veux pas déplacer le cercle mais je veux déplacer un point sur le contour du cercle

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Gie,

    darrylsite t'a donné comment calculer les points d'un cercle, c'est ce dont tu as besoin pour déplacer un point selon un cercle.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    merci, mais j'arrive pas à faire l'implémentation. je trouve pas les fonctions nécessaires.
    c'est mon premier exercice où je vais utiliser la graphique en pascal, et est-il nécessaire d'utiliser gdi en pascal pour résoudre ce problème.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Fie,

    Si je me souviens bien, avec TPW, il faut effectivement utiliser les API Windows.

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par droggo Voir le message
    Fie,

    Si je me souviens bien, avec TPW, il faut effectivement utiliser les API Windows.
    pouvez vous me donné un coup de pousse pour l'implémentation

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Gie,

    Regarde la réponse d'Alcatîz dans ce sujet :

    http://www.developpez.net/forums/sho...d.php?t=514425

    c'est un exemple basique pour utiliser les API.

    Ensuite, il faut plonger dans les API, c'est assez vite fait pour les bases (quelques traits, du texte avec les options par défaut), mais ça peut demander du travail pour creuser selon ce que tu veux faire.

    Si tu comptes te lancer là-dedans, il serait préférable de passer à Lazarus ou Delphi, ne serait-ce que pour apprendre les API 32 bits au lieu des 16 bits.

  9. #9
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 964
    Points : 59 676
    Points
    59 676
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Tu peux trouver un petit exemple de dessin d'un cercle sur une fenêtre Windows (une vraie, pas la fenêtre WinCRT) ici :
    http://alcatiz.developpez.com/tutori...=pg_gdi#LVII-B

    Pour TPW, il faut remplacer la clause par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uses WinTypes, WinProcs;

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par droggo Voir le message
    Gie,

    Regarde la réponse d'Alcatîz dans ce sujet :

    http://www.developpez.net/forums/sho...d.php?t=514425

    c'est un exemple basique pour utiliser les API.

    Ensuite, il faut plonger dans les API, c'est assez vite fait pour les bases (quelques traits, du texte avec les options par défaut), mais ça peut demander du travail pour creuser selon ce que tu veux faire.

    Si tu comptes te lancer là-dedans, il serait préférable de passer à Lazarus ou Delphi, ne serait-ce que pour apprendre les API 32 bits au lieu des 16 bits.
    merciiiiiiiiii bocou, c'est exactement ce que je cherche. mais j'ai un petit problème. je veux une fonction qui fait une petite pause comme delay je trouve le code du procedure delay http://www.developpez.net/forums/sho...ighlight=delay
    mais je veux savoir s'il y a une fonction standard en Pascal, comme settimeout de javascript merci bocou une autre fois

  11. #11
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    A propos de ce que je t' ai donné, tu peux bien deplacer les point sur un cercle. Regarde cet exemple :
    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
     
    r:=25;
    di:=0.3;
    i:=0;
    repeat
      x:=round(r*cos(i));
      y:=round(r*sin(i));
      putpixel(x,y,blue);
      delay(500);
      //on efface le point qu' on vient de placer
     putpixel(x,y,black);
     //on considerons que la couleur du fond noir
     i:=i+dx;
    until i>2*pi;
    putpixel(x,y,blue);
    Pour le settimeout(), si je comprend bien tu veux executer une action apres un laps de temps donné. Je ne crois pas que ça existe en pascal standard. Si ça se trouve, regarde du coté des threads.

  12. #12
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 950
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 950
    Points : 5 667
    Points
    5 667
    Par défaut
    Nia,
    Citation Envoyé par dmimnet Voir le message
    mais je veux savoir s'il y a une fonction standard en Pascal, comme settimeout de javascript merci bocou une autre fois
    Rien de standard en Pascal.
    Mais au lieu d'un délai, il serait peut-être mieux d'installer un Timer, ça fait partie des API (voir SetTimer).

  13. #13
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    A propos de ce que je t' ai donné, tu peux bien deplacer les point sur un cercle. Regarde cet exemple :
    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
     
    r:=25;
    di:=0.3;
    i:=0;
    repeat
      x:=round(r*cos(i));
      y:=round(r*sin(i));
      putpixel(x,y,blue);
      delay(500);
      //on efface le point qu' on vient de placer
     putpixel(x,y,black);
     //on considerons que la couleur du fond noir
     i:=i+dx;
    until i>2*pi;
    putpixel(x,y,blue);
    Pour le settimeout(), si je comprend bien tu veux executer une action apres un laps de temps donné. Je ne crois pas que ça existe en pascal standard. Si ça se trouve, regarde du coté des threads.
    Merciiiiiiii, vraimenet ca m'aider beaucoup je suis tres content c'est la première fois que je participe dans un forum et je suis très content de trouver la solution bon je veux jute faire une remarque pour votre code.
    je pense à la place de i:=i+dx ==> i:=i+di et puisque je utilise TPW 1.5 j'ai unit Graph donc j'ai pas la fonction putpixel ainsi j'ai utilisé la fonction moveto et Line et ca marche tressss bien merciiiiiiii infinment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher un point qui se déplace sur une trajectoire
    Par Renaud976 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 30/09/2012, 20h42
  2. Déplacer un point sur une courbe
    Par Xen956 dans le forum Interfaces Graphiques
    Réponses: 0
    Dernier message: 09/06/2012, 11h15
  3. [TChart] Déplacer un point sur une courbe
    Par paradise dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/11/2011, 12h12
  4. Déplacer un point sur une sphère
    Par Mr21_ dans le forum Mathématiques
    Réponses: 21
    Dernier message: 29/08/2010, 23h51
  5. Déplacer un point sur une courbe
    Par Wassim123 dans le forum MATLAB
    Réponses: 3
    Dernier message: 19/09/2007, 13h23

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