Salut,
Dans l'événement Paint du contrôle sur lequel tu veux dessiner, tu fais un
e.Graphics.DrawLine
Une droite se dessine en fonction de 2 points. Par ex:
X1 = 0
Y1 = 0
X2 = 20
Y2 = 20
te fera une droite à 45° nord-ouest à sud-est
Avant de parler code (et ce, quel que soit le langage de développement), on parle dans ce cas algèbre !!!
L'équation d'une droite est de type
y = ax + b
où a est le coefficient angulaire.
Autre approche assez révêlatrice de certains aspects.
Qu'est donc l'aiguille des secondes d'une horloge, sinon un segment de droite (dont l'une des extrêmités est le centre d'un cercle) tournant de 0 à 360 degrés hein ?
Vu ?
donc :
Une form avec un timer timer1
Option Explicit
Private Const diametre As Integer = 100
Private cy As Integer
Private cx As Integer
Private ancY As Single
Private ancx As Single
Private angle As Double
Private Sub Form_Activate()
Me.ScaleMode = vbPixels
Me.AutoRedraw = True
cx = Me.ScaleWidth / 2
cy = Me.ScaleHeight / 2
Me.Circle (cx, cy), diametre, vbWhite
Timer1.Interval = 100
End Sub
Private Sub Timer1_Timer()
Dim pi As Double, toto As Double
pi = 4 * Atn(1)
toto = (angle / 180) * pi
Me.Line (cx, cy)-(ancx, ancY), Me.BackColor
ancY = cy + Sin(toto - (0.5 * pi)) * diametre
ancx = cx + Cos(toto - (0.5 * pi)) * diametre
Me.Line (cx, cy)-(ancx, ancY)
angle = angle + 1
End Sub
Voilà ! tu as déjà deux méthodes (dans la mesure où, toutefois, tu sais en tirer la "moelle"... et tu ne sauras le faire qu'à condition de faire un effort de réflexion analytique, donc mathématique... totalement indépendant de tout code informatique ...) ...!!
re-bonsoir tout le monde
merci a tout les 2 pour vos réponses serte qui sont les base mais que je tien a vous remercier pour vos effort, mais le truck que j'arrive pas a réaliser c'est que, comment dessiner une ligne droite avec la sourie tout en gardant la même inclinéson ! (ex: tu click gauche sur le paint et quand tu bouge la sourrie dans un sence sa te déssine une droite avec une meme pente )
Oooooh !!!!...
L'équation d'une droite est y = ax + b (nous l'avons vu)
une fois a et b déterminés, tu fais varier x et calcule y (qui sont les coordonnées du point placé sur la droite concernée par ton équation, donc avec sa "pente" ..). Te reste à utiliser la méthode Line ....
On ne va tout de même pas t'écrire aussi celà, non ?
1. MouseDown sur le contrôle, ça te donne le point de départ de ta droite (X1 et Y1)
2. MouseMove te donne le point d'arrivé (X2 et Y2)
3. Tu calcul l'angle formé par la droite en fonction de X1, Y1, X2, Y2
4. Tu arrondis l'angle à la valeur voulu la plus proche (par ex tu à 25°, tu arrondis à 45°)
5. Tu calcul le point d'arrivé (X2 et Y2) en fonction de l'angle trouvé
6. Tu trace la ligne
-je tien a vous remercier encore une fois pour vos raiponces, mais je me permet de vous écrire cette fois si pour vous demandé es que il y'a une méthode qui permet soit a l'aide de .dll ou .ocx de crée directement des graphe comme ceux quand utilise dans des logicielle de CAO (pour crée un mini autocad ou autre ) par exemple si je veux dessiner des lignes droites avec un angle prediffinie tout en m'indiquand un apercue de la droite avant de la crée.
j'espaire avoire une raiponce bonne continuation a+
Pas à ma connaissance, non, car l'affaire est tellement simple que personne ne verra l'utilité d'une telle fonction de l'Api de Windows ou même d'un Ocx pour si peu !