Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: 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 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.192 c
15-1453242651
Jeer
2016-01-20 01:30
2017.01.15
Jeer


4-1277328004
grigor
2010-06-24 01:20
2017.01.15
Как найти список всех окон у которых есть иконки в трее?


1-1340607264
viosvi
2012-06-25 10:54
2017.01.15
ориентация листа OpenOffice


2-1423485605
lewka
2015-02-09 15:40
2017.01.15
Запрос в MS Access


2-1408987238
Black7777
2014-08-25 21:20
2017.01.15
TChromium DCEF3