- type TTurtlePoint = record // Diese records werde als Elemente in einer Liste der Turtle gespeichert.
- Rotation, Angle, Hypotenuse: single;
- Color: TMeleeColor;
- Draw: boolean;
- end;
- procedure TTurtle.RenderSelf();
- var i: integer; ThePoint: ^TTurtlePoint;
- begin
- for i:= 1 To Points.Count - 1 do // Alle Punkte durchgehen
- begin
- ThePoint := Points.Items[i]; // Informationen einlesen
- glRotatef(ThePoint.Rotation,0,1,0); // Matrix um sich selbst rotieren lassen
- glRotatef(ThePoint.Angle,1,0,0); // Matrix um den Winkel drehen
- glColor4f(ThePoint.Color[0],ThePoint.Color[1],ThePoint.Color[2],ThePoint.Color[3]); // Farbbestimmung
- if ThePoint.Draw then // Wenn gemalt werden soll
- begin
- glBegin(GL_Lines);
- glVertex3f(0,0,0);
- glVertex3f(0,ThePoint.Hypotenuse,0);
- glEnd;
- end;
- glTranslatef(0,ThePoint.Hypotenuse,0); // Die Matrix verschieben, damit die nächste Linie am Ende dieser Linie beginnt.
- end;
- end;