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.
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 oben! 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