23.3.4.0 Paint-Projekte 1

In diesem Kapitel werden die Ausführungen zum Thema 'Zeichnen mit Methoden der Klasse Paint' in zwei konkrete Projekte umgesetzt. Fast alle Zeichnungen basieren auf skript-artigen Paint-Befehlsfolgen, da die Methoden der Klasse Paint mehr auf die Verwendung als Konstruktionsbeschreibung für Linien, Formen und Text ausgelegt sind als auf das freie Zeichnen auf einer geeigneten Zeichenfläche wie einer DrawingArea.

Die Vorstellung der Projekte wird durch Kommentare zum angegebenen Projekt-Quelltext und zahlreiche Bilder ergänzt.

B1

Abbildung 23.3.4.0.1: Tangentenschar

Quelltext-Ausschnitt:

Public Sub PaintScriptBezierApproximation()
  Dim PS, P1, P2, P3, PE As New PointF
  Dim i, k As Integer
  Dim dx1, dx2, t As Float
 
  GenerateNewPicture()
  SetPictureBorder()  
  Paint.Begin(hPicture) 
    Paint.Translate(xTranslate, yTranslate)
    Paint.Scale(xScale, yScale) ' +y ▲  
    DrawCoordinateSystem() 
 
    P1.x = 30
    P1.y = 240
    P2.x = 150
    P2.y = 30
    P3.x = 500
    P3.y = 270
    k = 30 ' Anzahl der Tangenten
    dx1 = (P2.x - P1.x) / k
    dx2 = (P3.x - P2.x) / k
    ...
    Paint.LineWidth = 1
    For i = 1 To k + 1
      Paint.MoveTo(P1.x + (i - 1) * dx1, a(P1.x + (i - 1) * dx1))
      Paint.LineTo(P2.x + (i - 1) * dx2, b(P2.x + (i - 1) * dx2))    
    Next
    Paint.Stroke
 
  ' TEXT
    Paint.NewPath
    Paint.Scale(1, -1) ' ACHTUNG: y-Achse jetzt mit *positiven* Werten nach unten!
    Paint.Font = Font["Monospace, 10, bold"]
    Paint.Brush = Paint.Color(Color.Red)
    Paint.DrawText("P1(30|240)", 10, -250)
    Paint.DrawText("P2(150|30)", 120, -10)     
    Paint.DrawText("P3(500|270)", 455, -285)
    Paint.Scale(1, -1)
  Paint.End
 
End ' PaintScriptBezierApproximation()

Download