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

 Delphi Discussion :

Relier des points dans une paintbox par une courbe


Sujet :

Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Relier des points dans une paintbox par une courbe
    Bonjour,
    Je suis un grand débutant en delphi (j'ai commencé y'a 5 semaines!) et je réalise un programme permettrant de comprendre comment on guide un missile suivant différentes lois de guidage.

    Je dois faire rentrer par l'utilisateur la trajectoire de la cible et le programme calcule celle du missile puis représente tout ca à l'aide du canvas d'une paintbox.

    Pour l'instant la trajectoire de la cible est rectiligne : je clique à un endroit dans la paintbox (pour le point de départ) puis cela trace une droite.

    J'aimerai pouvoir rentrer un certain nombre de points et faire passer la cible par ceux ci sans avoir des morceaux de droites il faut quelques chose qui represente une trajectoire d'une cible réel (avions ou autre).

    Les positions de la cible ainsi que celles du missile sont rentrées dans un tableau ce qui me permet d'effectuer les calculs facilement, j'aimerai garder ce système avec la trajectoire calculée avec plusieurs points.

    voila si vous avez des idées et ou meme des morceaux de codes je suis preneur, si y'en a que ca interesse le sujet de ce programme dites moi et je vous détaillerai le programme! si vous pouvez ou voulez de m'aider à développer ce programme ca m'interesse aussi car je galère un peu pour l'optimiser et faire certains trucs!

    Voila j'espère n'avoir pas été trop long, merci d'avance!
    A+

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Voici un exemple. Regardes sur Google "PolyBezierTo Delphi Example" tu en trouvera d'autres. Certain programmes sont un peu anciens, il doivent être modifiés. Tu as aussi "PolyBezier"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var
    p: array[0..2] of TPoint;
    begin
    form1.canvas.MoveTo(50, 10);
    p[0].x := 10;
    p[0].y := 10;
    p[1].x := 50;
    p[1].y := 100;
    p[2].x := 10;
    p[2].y := 100;
    form1.canvas.Brush.Style := bsSolid;
    form1.canvas.brush.color := clBlack;
    form1.canvas.PolyBezierTo(slice(p, 3));

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Je vais voir ce que je peux faire avec ca! merci

    Mais plus simplement personne n'a réaliser un programme on peut rentrer des points et le programme en fait une courbe?


    sinon j'aurai besoin d'aide pour representer le vecteur vitesse missile evoluant sur la trajectoire. En fait il faudrait que je puisse representer une fleche qui evolue en fonction d'un parametre et de son point de départ.

    voila si vous pouvez m'aider ca serait sympa! merci d'avance a plus

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Comme ta PaintBox représente une image réduite de ta trajectoire calculée il suffit de calculer ta trajectoire tous les DelatX mètres où ce DeltaX correspond à 1 pixel de déplacement sur l'axe des x de ta PaintBox et de tracer la courbe y=f(x) en reliant les points situés entre "x pixels" et "x+1 pixels" par des bouts de droites ce qui rend toute interpolation superflue puisque l'on ne peut être plus précis sur un écran ... en plus cela évite de faire des calculs inutiles pour des points de trajectoire-réelle qui ne correspondent pas pile à un pixel-écran-de-l'axe-des-x, et dans ce cas seuls le y seront arrondis.
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    • Modifier les points (Y) d'une courbe avec la souris :
    http://sub0.developpez.com/delphi/bezier6.zip
    Dans cette démo, j'ai volontairement doubler les données (en nombre) afin d'obtenir une courbe régulière au niveau des arrondis...

    • Réaliser une courbe à partir de données (aléatoires pour l'exemple) :
    http://www.developpez.net/forums/sho....php?t=30136#9
    De retour parmis vous après 10 ans!!

Discussions similaires

  1. Relier deux points dans l'espace par des segments perpendiculaires
    Par Poupi0 dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 27/04/2010, 15h06
  2. Réponses: 2
    Dernier message: 18/06/2009, 15h09
  3. Réponses: 3
    Dernier message: 02/03/2009, 12h31
  4. Réponses: 4
    Dernier message: 31/10/2007, 20h27
  5. Réponses: 2
    Dernier message: 08/02/2007, 10h20

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