Главная страница
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.47 MB
Время: 0.023 c
15-1447853173
Юрий Зотов
2015-11-18 16:26
2017.01.15
Назад, в прошлое!


15-1450349876
DayGaykin
2015-12-17 13:57
2017.01.15
TCP прокси


3-1311770178
SQLEXPRESS
2011-07-27 16:36
2017.01.15
Ни кто не не желает в SQL размяться? Время исполнения


2-1421304666
chron22
2015-01-15 09:51
2017.01.15
динамический sql в компонентах


15-1447436787
data
2015-11-13 20:46
2017.01.15
подскажите по my sql