Piszę sobie program w c++ w którym pewien obiekt o nazwie Ph1 i ma się poruszać ruchem jednostajnie przyspieszonym i uzyskałem ruch jednostajnie przyspieszony ale problem jest w tym że obiekt Phi po ruchu jednostajnie przyspieszonym po pewnym czasie staje w miejscu.
Oto mój kod:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
{
Phi1 = -1;
if( Timer2->Enabled )
{ /* zatrzymanie zegara */
Timer2->Enabled = false;
}
else
{ /* uruchomienie zegara */
iStartTime = GetTickCount();
iElapsTime = 0;
Timer2->Interval = 10;
Timer2->Enabled = true;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
static float i = 0.0;
if( Phi1 < this->ClientWidth - Phi1)
{
Phi1 = Phi1 + i;
}
else
{
Timer2->Enabled = false;
Caption = (String)i;
i = 0.0;
}
iElapsTime = GetTickCount() - iStartTime;
Edit1->Text = FloatToStrF( ((float)iElapsTime)/1000.0, ffFixed, 7, 3) + " sekund";
i = ((float)iElapsTime/20000.0);
}
Teraz jak zrobić aby obiekt Phi1 po wykonaniu ruchu nie zatrzymywał się w miejscu tylko wyhamował ruchem jednostajnie opóźnionym.
Będę serdecznie wdzięczny za pomoc.





