//--------------------------------------------------------------------------- #include #include "Math.h" #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- float function(int i) { return (0.1*sqrt(12*i)+log10(i+7)); } int step = 15; void __fastcall TForm1::FormPaint(TObject *Sender) { int w2 = ClientWidth/2; int h2 = ClientHeight/2; TRect aRect = Rect(0,0,ClientWidth,ClientHeight); Canvas->Brush->Color=0xffffff; Canvas->FillRect(aRect); Canvas->Pen->Color=0x00; //Стрелка OX Canvas->MoveTo(0,h2); Canvas->LineTo(ClientWidth,h2); Canvas->MoveTo(ClientWidth-10,h2-3); Canvas->LineTo(ClientWidth,h2); Canvas->LineTo(ClientWidth-10,h2+3); //Стрелка OY Canvas->MoveTo(w2,0); Canvas->LineTo(w2,ClientHeight); Canvas->MoveTo(w2-3,10); Canvas->LineTo(w2,0); Canvas->LineTo(w2+3,10); //Единичный отрезок Canvas->MoveTo(w2+10+step,h2-2); Canvas->LineTo(w2+10+step,h2+2); Canvas->MoveTo(w2-2,h2-10-step); Canvas->LineTo(w2+2,h2-10-step); //Подписи осей int ht = Canvas->TextHeight("0"); int wt = Canvas->TextWidth("X"); Canvas->TextOutA(w2+2,h2-ht,"0"); Canvas->TextOutA(ClientWidth-12,h2-ht-2,"X"); Canvas->TextOutA(w2+6,2,"Y"); Canvas->TextOutA(w2+7+step,h2-ht,"1"); Canvas->TextOutA(w2+2,h2-step-2*ht,"1"); //График Canvas->MoveTo(w2,h2+function(0)); Canvas->Pen->Color=0x0000ff; for(int i=1; iLineTo(i*step+w2,-function(i)*step+h2); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key, TShiftState Shift) { if(((int)Key)==VK_LEFT) { step -= 10; FormPaint(this); } if(((int)Key)==VK_RIGHT) { step += 10; FormPaint(this); } } //---------------------------------------------------------------------------