2017-08-15 8 views
0

Je programme un programme de peinture. Lorsque l'utilisateur dessine une ligne, j'utilise ce code, et cela fonctionne comme prévu. Cependant, lorsque l'utilisateur dessine un seul point et non une ligne, DrawLine ne fonctionne pas. Par conséquent j'utilise DrawEllipse.Largeur DrawLine par rapport à la largeur Ellipse

Cependant, la largeur/hauteur de l'ellipse dessinée semble imprévisible et je ne peux pas faire la bonne formule. La largeur/hauteur de chaque point correspond à 80% de la largeur de la ligne.

C'est ce que j'utilise

Using g As Graphics = Graphics.FromImage(_bmp) 
    modControls.GraphicsSetSmoothingMode(g) 
    Dim nRect As New Rectangle(X - (_sngThickness/8), Y - (_sngThickness/8), _sngThickness/4, _sngThickness/4) 
    g.DrawEllipse(_Pen, nRect) 
End Using 

Quelqu'un semble ce que je fais mal?

En outre, mon ellipse n'est pas remplie, mais je suppose que c'est un autre problème.

+1

'g.FillEllipse (...' – LarsTech

+0

@LarsTech déjà résolu tous les – tmighty

+0

Je ne sais pas comment cela a réglé votre problème de dimension – LarsTech

Répondre

1

par le commentaire que je fait, essayez de passer à une brosse au lieu d'un stylo et utiliser la méthode FillEllipse à la place:

Using g As Graphics = Graphics.FromImage(_bmp) 
    modControls.GraphicsSetSmoothingMode(g) 
    Dim nRect As New Rectangle(X - (_sngThickness/2), Y - (_sngThickness/2), 
          _sngThickness, _sngThickness) 
    g.FillEllipse(_Brush, nRect) 
End Using 
+0

Veuillez utiliser/2 au lieu de/8 et/1 au lieu de/4. C'est ce que je voulais dire par" problèmes étranges ". l'approche finale de/2 n'aboutirait pas à la taille correcte. – tmighty