Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 28 juil. 2008 à 21:46
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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 juil. 2008 à 22:33
Bonsoir,
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.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 28 juil. 2008 à 23:04
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 ...) ...!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
inyox
Messages postés5Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention 4 août 2008 28 juil. 2008 à 23:21
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 )
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 juil. 2008 à 08:41
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 ?
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 29 juil. 2008 à 11:50
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
inyox
Messages postés5Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention 4 août 2008 29 juil. 2008 à 15:23
re-tout le monde :
-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+
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 29 juil. 2008 à 16:48
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 !