//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "ffala_plaska.h"
#include "math.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//	Konstruktor obiektu potomnego ogranicza się do wywołania konstruktora macierzystego
TFalaPlaska :: TFalaPlaska( int xe0, int ye0, int eszer, int ewys,  double xr0, double yr0, double rszer, double rwys)
         : TWykresPseudo3d( xe0, ye0, eszer, ewys, xr0, yr0, rszer, rwys)
{
}
//---------------------------------------------------------------------------
//	przedefiniowana funkcja obiektu podstawowego
double TFalaPlaska :: fun( double x, double y)
{
 return  7 * cos( x);
}
//---------------------------------------------------------------------------
//	Reakcja na zdarzenie OnPaint
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 int marg = 10, xe1, ye1, xe2, ye2;	  //współrzędne ekranowe początku i końca odcinka - elementu wykresu
 TFalaPlaska w( marg, marg , ClientWidth - ClientHeight - 2 * marg, ClientHeight - 2 * marg, 0, 0, 50, 50);
 TColor kolor;

 w.inicjuj_iterator();          //wykreślanie wykresu - uruchomienie iteratora
 while( w.iterator( xe1, ye1, xe2, ye2))  //pętla kreśląca wykres odcinek po odcinku
 {
  if( ye1 > ye2)                //kolorowanie stoków malejących wykresu
    kolor = clYellow;

  if( ye1 < ye2)                //rosnących
    kolor = clBlue;

  if( ye1 == ye2)               //równin
    kolor = clAqua;

  Canvas -> Pen -> Color = kolor;
  Canvas -> MoveTo( xe1, ye1);  //wykreślenie odcinka wykresu
  Canvas -> LineTo( xe2, ye2);
 }
}
//---------------------------------------------------------------------------

