Вниз
Скачать: CL | DM;

ускорение свободного падения   Найти похожие ветки 

 
aka ©   (2015-03-30 10:24) [0]

const
 g = 9.8

procedure MTimer(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD); stdcall;
begin
 z := z + 0.001;
 Form1.Button1.Top := Form1.Button1.Top + round(g * z);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 MMTimer := timeSetEvent(1,1,@MTimer,100,TIME_PERIODIC);
 z := 0;
end;


Чего оно рывками деhгается?


 
RWolf ©   (2015-03-30 10:34) [1]

Потому, что вертикальная координата — вещественное число, а ты ей даёшь целые приращения.


 
aka ©   (2015-03-30 10:38) [2]


> RWolf ©   (30.03.15 10:34) [1]

ну это я уже понял.
можно ли сгладить этот эффект?


 
RWolf ©   (2015-03-30 10:40) [3]

Держать модель в вещественных числах, а округлять только перед переводом в экранные координаты.


 
aka ©   (2015-03-30 11:37) [4]


> Держать модель в вещественных числах

z := z + 0.001;

> а округлять только перед переводом в экранные координаты.

Form1.Button1.Top := Form1.Button1.Top + round(g * z);


 
RWolf ©   (2015-03-30 11:45) [5]

а надо так:

y: double; // координата

y := y + g * z;
Form1.Button1.Top := round(y);


 
Inovet ©   (2015-03-30 13:21) [6]

Это у тебя скорость, вообще-то. Тебе, видимо, надо пространственную координату g*z^2/2.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
2-1430280290
kudatsky
2015-04-29 07:04
2017.01.15
Где находится профайлер AQTime в ХЕ6 ?


15-1450244415
KSergey
2015-12-16 08:40
2017.01.15
Смена пути в cmd файле и FAR Manager


15-1450042201
Юрий
2015-12-14 00:30
2017.01.15
С днем рождения ! 14 декабря 2015 понедельник


15-1447936212
Kerk
2015-11-19 15:30
2017.01.15
Сохранение позиции и размера формы


15-1448185459
Limpo
2015-11-22 12:44
2017.01.15
Oracle хранимые процедуры




   Наверх