Bonjour,
En VB6, je souhaite afficher le déplacement d'un point (cercle) sur une trajectoire constituée de segments (tableau de points) à une vitesse constante.
Je sèche... la semaine a été rude et j'ai les neurones en choucroute...
Par ailleurs mes recherches ont été vaines. Voudriez-vous me filer un coup de pouce pour me débloquer? Il serait très bienvenu.
Voici quelques éléments :
Ma trajectoire est affichée dans une PictureBox avec AutoRedraw=true.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Type PointTrajectoire X As Single Y As Single End Type Public Type Trajectoire NbPoints As Long Point() As PointTrajectoire End Type
Pour ne pas avoir à tout retracer à chaque fois, je passe en AutoRedraw=false pour travailler sur un autre plan, avec un timer de 50ms (20 images par seconde si j'ai bien calculé).
Et c'est là que ça coince, j'ai du mal à trouver comment calculer la position du cercle à tracer (les points de suspension ci-dessus) ; sur un seul segment je pense que j'y arriverai, mais il faut gérer le passage d'un segment à un autre et donc la distance parcourue sur le segment précédent et le reliquat...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub TimerTrajectoire_Timer() PictureTrajectoire.AutoRedraw=false PictureTrajectoire.Cls '... PictureTrajectoire.Circle(Xcercle, Ycercle),R End Sub
Note : il est possible que ma façon de faire ne soit pas la bonne.
Question subsidiaire : avec AutoRedraw, on a deux plans ; peut-on en avoir trois? (un pour mon fond, un pour ma trajectoire qui est modifiable, un pour mon point qui se déplace?).
Bien cordialement,
Renaud.
Partager