Relier des points dans une paintbox par une courbe

Résolu
Benjikos Messages postés 8 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 août 2007 - 14 août 2007 à 13:33
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 - 21 août 2007 à 13:57
<!-- icon and title -->

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+

26 réponses

Benjikos Messages postés 8 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 août 2007
17 août 2007 à 11:49
J'esaye de la faire avec pavé directionnel mais je n'y arrive pas : le timer tourne mais c'est tout !


Regardes:

var

  Form1: TForm1;

  Vx:integer;

  Vy:integer;

  i,j:integer;

  X0,Y0:integer;

  dt:double;

implementation


{$R *.dfm}


procedure TForm1.FormActivate(Sender: TObject);

begin

X0:=10;

Y0:=150;

dt:=0.01;

Vx:=100;

Vy:=0;

i:=1;

j:=0;

canvas.MoveTo(X0,Y0)

end;


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

  var

  Inc : Integer;


begin

  inc:=1;

  Case Key of

  VK_LEFT :   Vx := Vx - Inc;

  VK_RIGHT :  Vx := Vx + Inc;

  VK_UP :     Vy  := Vy - Inc;

  VK_DOWN :   Vy  := Vy + Inc;

  end;

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

Timer1.Enabled:=True;

Form1.keypreview:=True;

end;


procedure TForm1.Timer1Timer(Sender: TObject);

begin

canvas.LineTo(X0+round(Vx*dt*i),Y0+round(Vy*dt*j));


inc(i);

end;

end.


En fait je voudrai que quand il n'y a pas d'actions sur les flèches la cible aille tout droit (pour l' instant ca ca marche)

Up pour monter

down pour descendre

Left pour ralentir

Right pour accélérer


Qu'est ce qui va pas dans mon code??

Après faudrait que je récupère les positions dans un tableaux mais ca doit pas etre compliquer.

si vous avez une idée?
0
Benjikos Messages postés 8 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 09:45
Ca marche pas ton code enfin ca fait comme le mien la cible évolue en ligne droite sans que l'on puisse agir sur elle!
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
20 août 2007 à 12:21
Si, ça marche.
Mais c'est une question de focus.

Ajoute un TEdit à ta fiche ou bien tu rajoutes:




Form1.SetFocusedControl(self);


dans la "procedure TForm1.btnGoClick(Sender: TObject);"

@++
0
Benjikos Messages postés 8 Date d'inscription dimanche 23 mai 2004 Statut Membre Dernière intervention 20 août 2007
20 août 2007 à 13:52
Merci beaucoup! je vais integrer ca!


faut que je bosse aussi sur le vecteur vitesse à représenter et ca sera bon !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
20 août 2007 à 14:27
Si tu rencontres des difficultés pour ton vecteur vitesse, pose une nouvelle question sur le forum, stp.

Good, good, good coding!
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
21 août 2007 à 13:57
Je suis tombé sur ça, par hasard.  :)
0
Rejoignez-nous