Dessin

inyox Messages postés 5 Date d'inscription dimanche 10 juin 2007 Statut Membre Dernière intervention 4 août 2008 - 28 juil. 2008 à 21:36
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 29 juil. 2008 à 16:48
bonsoir tout le monde

voila j'aimerai bien que quelqu'un m'indique la procédure pour dessiné des droite incliné genre a 10°, 45° ,90°

merci

9 réponses

Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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.

Cours d'algèbre à réviser, donc ...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 juil. 2008 à 22:42
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 ...) ...!!
0

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

Posez votre question
inyox Messages postés 5 Date d'inscription dimanche 10 juin 2007 Statut Membre Derniè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 )

j'attend vos réponce et bonne continuation  !!!
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 ?
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
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
0
inyox Messages postés 5 Date d'inscription dimanche 10 juin 2007 Statut Membre Derniè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+
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 !
0
Rejoignez-nous