Вниз
Скачать: 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.017 c
15-1448227801
Юрий
2015-11-23 00:30
2017.01.15
С днем рождения ! 23 ноября 2015 понедельник


2-1426763880
neworok
2015-03-19 14:18
2017.01.15
Как создать тип "множество" для динамических компонентов


2-1423635127
Aleshka
2015-02-11 09:12
2017.01.15
Размеры fsMDIChild формы


2-1425123097
SergP
2015-02-28 14:31
2017.01.15
Наследники абстрактных классов


15-1447853173
Юрий Зотов
2015-11-18 16:26
2017.01.15
Назад, в прошлое!




   Наверх