IPB
ЛогинПароль:

> ефект 'колобка', помогите
сообщение
Сообщение #1


Вожак стада
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской
Реальное имя: кирилл

Репутация: -  1  +


кто нибудь скажите как сделать качение по поверхности+падение если земли нет.есть коефицент трения.если можно,то с кодом на tp7


--------------------
Админ наш,
Иже еси на серверах!
Да святится имя Твое,
Да приидет Unix Твой,
Да будет воля Твоя,
Как на земле , так и на небе.
Пинг наш насущный дай нам на сей день;
И прости нам счета наши, как и мы оставляем их должникам нашим;
И не введи нас во искушение виндовое,
Но избавь нас от лукавого Билли.
И да пребудет с нами сила твоя великая,
Во имя Отца-админа, Сына-Пингвина, и духа мастдайного. Админь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Если я правильно понял задачу, то вот имитация для поверхности в виде прямой горки или для земли, при l=0, или же для падения, при l=90.

uses crt, graph;
{ $define text}// убери пробел перед "$" для текстового вывода
{ $define graph}// убери пробел перед "$" для графической имитации
const
v0=100; //начальная скорость
g=10; // сила тяжести
k=0.2; //коэффициент трения
l=40; //угол подъёма горки
radius=8; //радиус шарика
xb=0; //начальное положения шарика
yb=0;
shag=0.05; //квант времени, за объяснениям - http://forum.pascal.net.ru/index.php?showtopic=12821
var
r,x,y,v,a:double;

function rad(q:real):real;
begin
rad:=q/360*2*pi;
end;

procedure calculation(t:real);
begin
if v>0 then
a:=g*(-cos(rad(l))*k-sin(rad(l)))
else
a:=g*(cos(rad(l))*k-sin(rad(l)));

v:=v+a*shag;
r:=r+v*shag;
x:=xb+cos(rad(l))*r;
y:=yb+sin(rad(l))*r;
end;

procedure show;
begin
setcolor(red);
circle(trunc(x),trunc(480-y),radius);
end;

procedure hide;
begin
setcolor(black);
circle(trunc(x),trunc(480-y),radius);
end;

var t:real;
grDriver : Integer;
grMode : Integer;
Begin
{$ifdef graph}
grDriver:=Detect;
InitGraph(grDriver, grMode, '');
{$endif}
t:=0;
v:=v0;
r:=0;
while not keypressed do
begin
t:=t+shag;
calculation(t);
{$ifdef graph}
show;
delay(1);
hide;
{$else}
writeln('x = ',x+xb:0:2);
writeln('y = ',y+yb:0:2);
writeln('a = ',a:0:2);
writeln('v = ',v:0:2);
writeln('t = ',t:0:2);
delay(50);
clrscr;
{$endif}

end;
end.




--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.05.2024 15:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name