Bezierkurven mit dem TI-92


Wer mit einem Zeichenprogramm oder einem Textverarbeitungsprogramm arbeitet, hat sicher schon einmal die Darstellung einer Kurve oder eines Bogens benötigt. In vielen Programmen sind zu diesem Zweck Zeichenelemente vorhanden, die sich in gewissen Grenzen den eigenen Bedürfnissen anpassen lassen. Meist werden dafür Bezierkurven verwendet. Auch mit dem TI-92 können wir leicht Bezierkurven erzeugen und grafisch darstellen. Das unten wiedergegebene Programm zeigt, wie das unter Ausnutzung der symbolischen Fähigkeiten des TI-92 geschehen kann.


Parameterdarstellungen auf dem TI-92

Wir gehen davon aus, dass Parameterdarstellungen von ebenen Kurven bekannt sind. Beispielsweise wird durch

(1)

ein Kreis in Parameterdarstellung beschrieben. Wir schreiben die Kurvengleichungen kurz vektoriell :

(2)

Der TI-92 kann ohne weiteres parametrisierte Kurven darstellen. Dazu müssen folgende Einstellungen vorgenommen werden :

  1. bei Mode die Einstellung Graph - PARAMETRIC auswählen,
  2. die Gleichungen für die gewünschte Kurve eingeben (z.B. im Y = Editor); dafür sind die Variablen xt1, yt1 (für die erste Kurve), xt2, yt2 (für die zweite Kurve) usw. reserviert.
  3. mit Diamond-GRAPH die Kurve zeichnen, ggf. mit Diamond-WINDOW den Maßstab geeignet einstellen.

Bild 1 (Kreis mit TI-92)


Was sind Bezierkurven ?

Eine umfassende Einführung, die sich auch für den Unterricht verwenden lässt, ist in [1] zu finden. Wir stellen kurz das Wesentliche dar. Bezierkurven sind parametrisierte Kurven, die gewisse Steuerbedingungen erfüllen, so dass die Kurven bestimmte gewünschte Formen annehmen. Dadurch lassen sich Bezierkurven verwenden wie „Kurvenlineale". Um das zu erreichen, verwendet man eine Anzahl von Kontrollpunkten und geeignete Bedingungen zum Einstellen der Kurvenform. Als Beispiel verwenden wir die vier Kontrollpunkte P1(0|0), P2(0|1), P3(1|1), P4(1|0) (siehe Bild 2).

Bild 2

Wir suchen dazu eine Kurve mit den „Bezier-Bedingungen"

(3) .

Die Kurve soll also durch die Punkte P1 und P4 gehen, in P1 soll die Tangente in Richtung P1-P2 und in P4 in Richtung P3-P4 verlaufen. Dabei ist der Wert für den Parameter k noch passend zu wählen, bei den dargestellten Bildern ist k = 3. Durch Veränderung der Punkte P1 bis P4 lässt sich bei Erfülltsein von (3) näherungsweise jede Kurvenform einstellen. Ggf. verwendet man mehrere Bezierkurven und hängt sie passend aneinander.

Die Kurve in Bild 3 entsteht z.B. mit den Kontrollpunkten P1(0|0), P2(2|1), P3(-1|1), P4(1|0).

Bild 3


Bestimmung von Bezierkurven

Die Bedingungen (3) lassen sich umschreiben in zweimal vier Gleichungen für die Komponenten. Mit Hilfe des Ansatzes

(4a) x(t) = a t3 + b t2 + c t + d
(4b) y(t) = e t3 + f t2 + g t + h

ergibt sich daraus ein lineares Gleichungssystem, aus dem man die Unbekannten a bis h bestimmen kann. In der Praxis wird ein anderer Weg beschritten, der Algorithmus von de Casteljau, der sich leicht programmieren lässt (siehe z.B. [2] ) :

  1. Gegeben seien die n Punkte P1(x1|y1), ... , Pn(xn|yn) und ein Parameter .
  2. Setze für i = 1, ... ,n :
    (zu den Punkten P1, ... , Pn gehörende Ortsvektoren als Startvektoren) ,
  3. Berechne für k = 1, ... , n-1 : , i = 1, ... , n-k
  4. Ergebnis .

Der Algorithmus ist für beliebiges n > 1 verwendbar, für unser Beispiel ist n = 4.


Das Programm bezier()

Das folgende TI-92 - Programm ist als Funktion konzipiert. Dabei werden die Punkte übergeben als Liste von x-Werten bzw. y-Werten. Als Ergebnis wird die Liste {b_x(t),b_y(t)} für die Komponenten der gesuchten Bezierfunktion zurückgegeben.

bezier(a,b,t)
Func
¨ berechnet die Bezierkurve zu den Punkten (a[]|b[])
¨ a : Liste von x-Werten
¨ b : Liste von y-Werten
¨ t : Variable
Local k,j,n dim(a)»n
For k,1,n
..For j,1,n-k
....t*a[j+1]+(1-t)*a[j]»a[j]
....t*b[j+1]+(1-t)*b[j]»b[j]
..EndFor
EndFor
{a[1],b[1]}
EndFunc

Beispiel : Um die Bezierkurve zu den Punkten in Bild 2 zu erhalten, wird eingegeben :
bezier({0,0,1,1},{0,1,1,0},t) -» bz

Das Ergebnis ist in der Variablen bz gespeichert und kann dann an die für das Zeichnen vorgesehenen Funktionen xt1 bzw. xt2 übergeben werden (siehe Bild 4). Mit Diamond - GRAPH kann dann - bei geeigneterEinstellung des Zeichenbereichs - die Bezierkurve gezeichnet werden.

Bild 4

Bemerkung : Bei Verwendung des Algorithmus von de Casteljau ergibt sich für den Parameter k in (3) der Wert k = 3. Rechnet man mit dem Gleichungssystem, das sich aus (3) und (4) ergibt, so kann man über k noch verfügen.


Literatur :

[1] Brandt, Dieter : Was sind eigentlich Bezier-Kurven, in : Math. in der Schule, Pädagogischer Zeitschriftenverlag, Berlin, 36(1998), Heft 4, Seite 239-250.

[2] Sauer, Thomas: Ein algorithmischer Zugang zu Polynomen und Splines, Mathematische Semesterberichte 2 (1996), Seite 169-189.