Home

A scuola di Delphi

www.gpeano.org 

Introduzione · Capitolo 1 · Capitolo 2 · Capitolo 3 · Capitolo 4 · Capitolo 5 · Download 

Sommario
Blocco note
Tavola gradi-rad
Primitive grafiche
Giochi grafici
Assi cartesiani
Retta esplicita
Fascio improprio
Circonferenza
Ellisse
Sistema solare
Parabola
Iperbole
 

Capitolo 3

Parabola

Questo programma riveste un discreto interesse dal punto di vista dell'algoritmo utilizzato, poiché è la base di qualunque procedimento che serve per disegnare una funzione per punti.

Dati i valori di a, b e c dell'equazione della parabola con asse parallelo all'asse y, l'applicazione rappresenta la curva corrispondente.

Nella procedura associata al bottone Disegna si può vedere che:

  • vengono letti i valori a, b, c;
  • si entra nel blocco riferito a Oxy;
  • ad x viene assegnato il valore xMin che contiene il valor minimo di x visibile in Oxy;
  • quindi all'interno di un ciclo repeat until vengono calcolati in successione i valori di y corrispondenti a x;
  • quindi, a seconda che il valore di x sia uguale a quello iniziale (xMin) oppure no, viene spostata la penna nella posizione iniziale con MoveTo oppure viene tracciata una linea a partire dalla posizione precedente con LineTo; in questo modo la parabola viene disegnata come una linea spezzata costituita da tanti piccoli segmenti;
  • viene incrementato il valore di x di dx; la scelta di dx è importante: se si vuole un grafico molto accurato dx va scelto piccolo (a scapito della velocità) oppure se è più importante la precisione dx può essere scelto più grande (a scapito della precisone); nel nostro caso dx = 0.1 è ragionevole.
procedure TFormParabola.ButtonDisegnaClick(Sender: TObject);
var
  a, b, c, x, y: Double;
begin
  a:=StrToFloat(EditA.Text);
  b:=StrToFloat(EditB.Text);
  c:=StrToFloat(EditC.Text);
  
  with Oxy do
  begin
    Pen.Color:=clBlue;
    x:=xMin;
    repeat
      y:=a*Sqr(x)+b*x+c;
      if x=xMin then
        MoveTo(x, y)
      else
        LineTo(x, y);
      x:=x+0.1;
    until x>xMax;
  end;
end;

 3.11 - Parabola (*)

 

(*) TOxy (deve essere installato in Delphi prima di aprire il progetto: seguire le istruzioni contenute nel commento del file zip oppure all'interno del file OxyScuola.pas)