Turbo Pascal: Graph zu einer math. Funktion

Ich hab ein erstes Pascal-Buch durchgearbeitet, und möchte einmal einen Graphen einer Funktion auf dem Bildschirm ausgeben.
Ich hab dazu ein Koordinatensystem durch 2 Linien erstellt und wollte vom Ursprung jetzt die Funktion f(x)=x^2 darin einzeichnen, indem das Programm 2 benachbarte Punkte miteinander verbindet.
Dies klappt soweit gut. Jedoch bin ich mit der Programmierung nicht zufrieden.

  1. Habe ich die Funktion f(x)=x^2 nicht beibehalten.
  2. Sind die Linien doch recht lang.

Wer kann mir ein bisschen helfen, wie man einen „vernünftigen“ Graphen zeichnet? Gibt es noch andere Methonden einen Graphen zu erstellen?

Mein bisheriges Programm:

PROGRAM Punkte1;
USES Crt, Graph;
VAR Treiber, Modus, i, yalt, xalt, x, y: Integer;

BEGIN
Treiber := Detect;
InitGraph (Treiber, Modus, ‚c:\turbo\bgi‘);

line (100,200,600,200);
line (300,0,300,400);

xalt:=270;
yalt:=200 - 25*6 ;

for i:= -5 to 5 do
begin
x:=300+6*i;
y:=200-6*i*i;

setcolor (12);
line (xalt,yalt, x,y);

xalt:= x;
yalt:= y ;
end;

Readln;
END.

  1. Habe ich die Funktion f(x)=x^2 nicht beibehalten.
  2. Sind die Linien doch recht lang.

Ja, das liegt wohl daran, daß die Schleife mit 1
incrementiert. Die stützstellen werden also nur
für -5,-4,-3… erzeugt.

Wer kann mir ein bisschen helfen, wie man einen „vernünftigen“
Graphen zeichnet? Gibt es noch andere Methonden einen Graphen
zu erstellen?

Optimal brauchst Du eine Stützstelle je darstellbaren
Bildpunkt.
Das ist in der Programmierung natürlich etwas aufwendiger.
Für die Darstellung von Realzahlen im Grafikmodus empfehle
ich Dir ein Tool, das das Pixelformat in Worlkoordinaten
umwandelt. Du kannst dann deine Grafik mit Realzahlen
initialisieren und jeden Punkt mit seinen Realkoord.
ansprechen. Die Benutzung ist äquivalent zu den
Standardgrafikbefehlen.
Beispiel: linewc(5.36,3.68,5.37,3.79) erzeugt Linie
im def. Koord.-system. Du kannst also mit
beliebiger Auflösung arbeiten.
Gruß Uwi bei Interresse schick mir 'ne Mail.

Mein bisheriges Programm:

PROGRAM Punkte1;
USES Crt, Graph;
VAR Treiber, Modus, i, yalt, xalt, x, y: Integer;

BEGIN
Treiber := Detect;
InitGraph (Treiber, Modus, ‚c:\turbo\bgi‘);

line (100,200,600,200);
line (300,0,300,400);

xalt:=270;
yalt:=200 - 25*6 ;

for i:= -5 to 5 do
begin
x:=300+6*i;
y:=200-6*i*i;

setcolor (12);
line (xalt,yalt, x,y);

xalt:= x;
yalt:= y ;
end;

Readln;
END.