GDI+ smooth drawing

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Bluespide.

    GDI+ smooth drawing

    Hi,
    ich möchte auf einem Panel zeichnen. Und zwar freihand. Nachfolgender Code geht schon in die richtige Richtung, es gibt aber ein Problem:
    Wenn man den Cursor zu schnell bewegt, dann werden die Abstände zwischen den Koordinaten zu groß.
    Als resultat wird die Linie nicht richtig durchgezogen (siehe unten).

    VB.NET-Quellcode

    1. Dim coordinate As Point
    2. Dim coordinates As New List(Of Point)
    3. Private Sub pnlDraw_MouseMove(sender As Object, e As MouseEventArgs) Handles pnlDraw.MouseMove
    4. If e.Button = Windows.Forms.MouseButtons.Left Then
    5. coordinate = New Point(e.X, e.Y)
    6. coordinates.Add(coordinate)
    7. pnlDraw.Invalidate()
    8. End If
    9. End Sub
    10. Private Sub pnlDraw_Paint(sender As Object, e As PaintEventArgs) Handles pnlDraw.Paint
    11. If Not coordinates Is Nothing Then
    12. For Each c As Point In coordinates
    13. e.Graphics.FillEllipse(New SolidBrush(Color.Black), c.X, c.Y, 5, 5)
    14. Next
    15. End If
    16. End Sub