Страница 1 из 1

Помогите новичку с моделированием

СообщениеДобавлено: 03.05.2012 15:39:21
koshka-kapratoshka
Вопрос по программированию в среде Лазарус.

имеется мной написанное небольшое приложение "моделирование равноускоренного движения".
в нем с клавиатуры вводится значения начальной скорости и ускорения(начальное положения всегда=0), по уравнению равноуско. движен.(x = x0 + at^/2 +u0 *t) двигается точка. Этой точке в каждый момент времени(по таймеру) присваивается координатка Х, точка у меня как бы проезжает по форме и убегает за ее пределы!))
Как запрограммировать эту точку так, чтобы она проезжала форму и возвращалась к положению ноль, и продолжала двигаться дальше?
Вот надеюсь, понятно рассказала...

Re: Помогите новичку с моделированием

СообщениеДобавлено: 03.05.2012 17:02:12
GrayEddy
Сезон открылся снова. Идет охота на студентов... :wink:

Re: Помогите новичку с моделированием

СообщениеДобавлено: 03.05.2012 20:54:17
Padre_Mortius
Как запрограммировать эту точку так, чтобы она проезжала форму и возвращалась к положению ноль, и продолжала двигаться дальше?

Сначала нарисовать точку нужным цветом, после вычисления новой точки закрашиваем старую точку цветом фона и рисуем новую точку нужным цветом. Все это делаем по нужной траектории.

Re: Помогите новичку с моделированием

СообщениеДобавлено: 03.05.2012 21:56:33
Mr.Smart
Я бы хотел увидеть код написанный уважаемой koshka-kapratoshka, а после уже можно размышлять...

п.с. Это сугубо моё желание 8)

Re: Помогите новичку с моделированием

СообщениеДобавлено: 04.05.2012 07:08:32
koshka-kapratoshka
procedure TForm1.Button1Click(Sender: TObject);
begin

t:=0;
x:=0;
a:=strtofloat(Edit2.text);
u:=strtofloat(Edit1.text);
Timer1.Enabled:=true;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
t:=t+1;
x:=(a*t*t/2+u*t);
Image1.Left:=trunc(x);
end;
__________
часть кода где я считываю значения при нажатии на батон1, и далее имиджу присваивается Х.

Re: Помогите новичку с моделированием

СообщениеДобавлено: 04.05.2012 10:49:18
v-t-l
Код: Выделить всё
Image1.Left:=(Width + trunc(x)) mod Width;