cs_olyve
Messages postés2Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention17 avril 2003
-
17 avril 2003 à 09:22
rouxela
Messages postés11Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention12 juillet 2005
-
8 avril 2005 à 08:30
Salut
Le sujet de mon projet est un simulateur de voiture. Je dois, entre autre, creer un compteur kilometrique. En fait, en appuyant sur une touche l'aiguille doit se deplacer dans un cadran circulaire. L'aiguille a deux extremités. (x1, y1) est fixe et se trouve au centre du cadran. Par contre, (x2, y2) doit se deplacer en decrivant un cercle. Mon probleme est là! Pour faciliter les choses, j'utilise d'abord un bouton. A chaque clique je voudrai que l'aiguille se deplace d'un angle "alpha". Il s'agit de 2 ou 3 lignes de codes mathematiques que je n'arrive pas a trouver. Si certains ont une idée , je leurs serai infiniement reconnaissant.
merci
@ plus
Olaïve
cs_olyve
Messages postés2Date d'inscriptionmercredi 16 avril 2003StatutMembreDernière intervention17 avril 2003 17 avril 2003 à 10:27
salut
je connais les coordonnées polaires mais je sais pas comment m'en sarvir en vb. je debute depuis quelques jours et j'ai decouvert ce site il n'ya que quelques heures. je ne voudrai pas abuser mais si tu pouvais me donner plus de details ca m'aiderait beaucoup.
olyve
rouxela
Messages postés11Date d'inscriptionjeudi 13 mai 2004StatutMembreDernière intervention12 juillet 2005 8 avril 2005 à 08:30
'Affiche la position de l'aiguille ds le Cadran
Public Function AfficheCadran(value As Single, Vmax, Pic As PictureBox)
'Attention les Graduations doivent être dessinées avant ds la picturebox
'A déterminer en fct de la taille de l'aiguille
' Les variables que l'ont peut regler :
'CentreX , CentreY
'L'angle de décalage de départ
'La valeur max du cadran
'La taille de l'aiguille
' Les coordonées du centre
Dim CentreX, CentreY As Long
'L'angle de l'aiguille
Dim Angle As Single
'La taille de l'aiguille
Dim Taille_Aiguille As Long
'L'angle de décalage de l'aiguille à valeur 0 par rapport à la verticale
Dim Angle_Decalage As Long
Dim Angle_Max As Long
'la variable Angle_Milieu sert a determiner la valeur médiane du Cadran
'pour en fct de cette valeur affiché la Variable Value à gauche ou à droite de l'aiguille
Dim Angle_Milieu As Single
On Error Resume Next
Pic.ForeColor = &HFF0000
Angle_Decalage = 90
Angle_Max = (360 - Angle_Decalage * 2)
Taille_Aiguille = 1800
'Place le Pivot de l'aiguille
CentreX = Pic.ScaleWidth / 2
CentreY = Pic.ScaleHeight / 1.1
'Converti la valeur en angle
'(on ne prend pas 360° mais 360° - l'angle de décalage de départ * 2 (le meme de chaque coté de l'axe vertical))
Angle = ((360 - Angle_Decalage * 2) / Vmax) * value
'Positionne l'angle de départ de l'aiguille sur le cadran
'90 pour que l'aiguille soit à la verticale + Angle_Decalage
Angle = Angle + 90 + Angle_Decalage
Angle_Milieu = (Angle_Max / 2) + 90 + Angle_Decalage
If Angle > 360 + 90 - Angle_Decalage Then Angle = 360 + 90 - Angle_Decalage
' Convertit l'angle en radian (à la place des degrés)
Angle = 3.1415926 / 180 * Angle
Angle_Milieu = 3.1415926 / 180 * Angle_Milieu
' Efface le cadran
Pic.Cls
' Epaisseur de l'aiguille
Pic.DrawWidth = 3
C'est ici les coordonnées polaires!!!!!
' Dessine l'aiguille
Pic.Line (CentreX, CentreY)-(CentreX + Cos(Angle) * Taille_Aiguille, CentreY + Sin(Angle) * Taille_Aiguille)
' Affiche la Valeur a coté de l'aiguille
' i = CentreX + Cos(Angle) * Taille_Aiguille
' j = CentreY + Sin(Angle) * Taille_Aiguille
'Si la valeur est inférieur à Angle_Milieu alors on affiche
'la valeur à gauche de l'aiguille sinon a droite
If Angle < Angle_Milieu Then Pic.CurrentX = Pic.CurrentX - 450
Pic.CurrentY = Pic.CurrentY - 75
Pic.ForeColor = &HFF&
Pic.FontBold = True
Pic.FontSize = 14
Pic.Print value