Slider et volume

Résolu
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007 - 15 janv. 2007 à 22:14
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007 - 16 janv. 2007 à 18:39
Bonsoir à tous
Je vous expose mon cas: dans le cadre de calcul de volume d'un cylindre
3 Textbox =>  Text1 = Diametre en mm
                       Text2 = Longueur en mm
                       Text3 = Volume en mm3
                      + 1 Slider avec un max de 10 repères

J'aimerais savoir si il était possible de pouvoir jouer sur les valeurs de Text1 et Text2 en utilisant le Slider et ceci sans Changer la valeur de Text3 qui servira donc de référence
Merci

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 janv. 2007 à 09:06
Il te faut quoi, le code tout fait ???? que tu n'ais plus rien à faire.

Alors supposons que ton slider fixe la valeur du diametre :

Sub Slider1_Change()
    Text1.Text = Slider1.Value
    Text2.Text = Text3.Text / (3.1415 * (Text1.Text / 2) ^ 2)
End Sub

Cela en appliquant la formule donnée plus haut L = V / (PI * (D/2)2 )

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 janv. 2007 à 22:26
Bien sur, dans l'évènement Change de ton slider, tu fais évoluer la valeur qui doit changer (text1 ou text2), et en appliquant la formule de calcul du volume en sens inverse tu peux retouver l'autre valeur.

La formule du volume étant si je me trompe pas V = PI*(D/2)2*L

En faisant varier D, tu retrouve L = V / (PI * (D/2)2 )
et en faisant varier L, tu retrouve D = 2 ( V*(PI*L))1/2

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 janv. 2007 à 22:34
Bien évidemment que oui !

Mais c'est avant tout des maths !

Volume = Pi x Rayon² x Hauteur

Or volume est fixe, selon ta définition  

en conséquence :
- si tu modifies Rayon, il te faut calculer la nouvelle hauteur pour ce même volume
-si tu modifies hauteur, il te faut calculer le nouveau rayon pour ce même volume .

Tout celà n'est que mathématique et n'a rien à voir avec VB

En maths, j'aurais donc :
Z = Pi x² y
Z étant fixe :

a)    si tu modifies y :

x = Racine carrée de (Z/pi * Y)

b) si tu modifies x :

y = Z/(pi *x²)

Ton problème n'est pas VB mais autre chose.....
0
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
16 janv. 2007 à 00:27
Merci pour ces réponses
mais je confirmes que ce n'est pas un problême de math
Pour préciser ma question
Quel code je peux utiliser pour faire varier L et D en utilisant la fonction Slider
Merci
0

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

Posez votre question
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
16 janv. 2007 à 00:36
Pour éviter de tourner en rond , je vais essayer de préciser ma question
Il s'agit également de faire en sorte que L et D change avec l'utilisation d'1 Slider
Exemple: Plus le Slider va vers la droite plus L augmente et D diminue de manière à ce que V ne change pas
Plus le Slider va vers la gauche plus L diminue et D augmente et cela toujours en gardant la valeur de référence qui est D
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 09:03
Il me semble que tu te noies dans un verre d'eau !

Je ne vais pas faire ton exercice, mais te donner cet exempla:

Sur une Form :
- une HscrollBar Hscroll1
- une Shape Shape1

Code :

Private depL As Double, depD As Double
Private Sub Form_Activate()
  With HScroll1
    .Min = -1000
    .Max = 1000
    .Value = 0
  End With
  depL = Shape1.Height
  depD = Shape1.Width
End Sub


Private Sub HScroll1_Change()
  HScroll1_Scroll
End Sub


Private Sub HScroll1_Scroll()
  Shape1.Height = HScroll1.Value + depL
End Sub

Voilà donc comment tu fais varier L

Je te laisse bien évidemment appliquer maintenant les calculs plus hauts pour en déduire et fixer la valeur de D !
0
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
16 janv. 2007 à 18:39
Merci encore pour ces réponses
Petite précision
En aucun cas je ne veux que vous fassiez mon travail en me donnant un code pret à l'emploi (c'est en faisant des efforts et en réflechissant que ça finis par rentrer)
Mais quand on utilise Vb rarement, et pour des applications bien précise, il n'est vraiment pas évident de se servir d'une fonction qui est, en tous cas pour moi nouvelle.
0
Rejoignez-nous