Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.10;
Скачать: CL | DM;

Вниз

сила/ускорение/скорость   Найти похожие ветки 

 
Dmitry S ©   (2008-06-19 17:46) [0]

Чтото я не могу разобраться.
Хочу сделать окно, которое плавно летает за курсором.

К примеру курсор притягивает окно с силой G.
Какие параметры и как расчитывать? (с математикой у меня хорошо, с физикой не очень).
Я так понимаю на окно действует постоянно две силы: G и I (инерция). При этом окно двигается со скоростью v (t).
t - время в секундах.
dt - время между кадрами. Т.е. между расчетами. Расчитать надо подразумевая, что на тело действует сила G все время dt.
Вот и собственно вопрос как расчитать движение?

PS. Прошу опустить комментарии по поводу "зачем все это надо"


 
БарЛог ©   (2008-06-19 17:49) [1]

Сделай еще зависимость от квадрата расстояния


 
McSimm ©   (2008-06-19 17:53) [2]


> БарЛог ©   (19.06.08 17:49) [1]

и от масс курсора и окна :)


 
McSimm ©   (2008-06-19 17:57) [3]

для реалистичности без векторов не обойтись. Если что-то движется со скоростью V0, но не в том направлении, простое добавление V0+dV не поможет поверить, что тут рядом проходили физические процессы


 
Mystic ©   (2008-06-19 18:00) [4]

Проинтегрировать по площади окна. Быть готовым к тому, что дипольный момент будет разворачивать окно.


 
БарЛог ©   (2008-06-19 18:02) [5]

> дипольный момент будет разворачивать окно.
хотел бы я на это посмотреть в реализации :)


 
Dennis I. Komarov ©   (2008-06-19 18:04) [6]

А как же вихривые потоки из пустой корзины? :)


 
McSimm ©   (2008-06-19 18:06) [7]


> Mystic ©   (19.06.08 18:00) [4]

:)
Я когда это читал, представил, что придется мышку удерживать, иначе ее потянет вслед за притянутым курсором :)


 
TUser ©   (2008-06-19 18:21) [8]

В каждый момент окно движется по вертикали со скоростью V и не меняет ее самостоятельно

Курсор тянет вних с силов А, которая есть скорость изменения скорости

По горизонтали - аналогично. Силу можно разложить на составляющие, взяв ее проекции.


 
McSimm ©   (2008-06-19 18:21) [9]


> Dmitry S ©   (19.06.08 17:46)

Поскольку ускорение прямо пропорционально действующей силе, то достаточно реализовать эту прямую пропорциональность, разложив по осям.

Т.е. дельта скорости для каждого дельта времени постоянна и равна kF (некая константа на силу), раскладываем V0 по осям и расчитываем приращение по каждой оси.


 
Mystic ©   (2008-06-19 18:30) [10]

С точке зрения физики в данной задаче явно некорректно рассматривать окно как материальную точку.


 
McSimm ©   (2008-06-19 18:37) [11]

Это если рассматривать окно как массу, что конечно реалистичнее и рассматривать силу взаимодействие в зависимости от квадрата расстояний до каждой его точки.

Но в исходном вопросе есть допущение, что на окно действует заданная сила. Я думаю, что на некоторые упрощения с учетом уровня знаний можно пойти.


 
Mystic ©   (2008-06-19 18:52) [12]

Понятно, что так проще реализовывать---не надо поворачивать окно :)


 
@!!ex ©   (2008-06-19 19:24) [13]

Векторы - рулят...
Смотришь на задачу - ужасно сложная, как решать - непонятно...
Переводишь все значения в вектора... и получаешь элементарную задачу...


 
Псалтырь ©   (2008-06-19 23:48) [14]


> Mystic ©   (19.06.08 18:30) [10]
>
> С точке зрения физики в данной задаче явно некорректно рассматривать
> окно как материальную точку.
>

Да почему же? Пересечение диагоналей будем считать центром масс и вперед


 
Petr V. Abramov ©   (2008-06-20 01:08) [15]


> К примеру курсор притягивает окно с силой G.

сила G к чему приложена? к какой кнопке мышки? За какое место окна притягивает?


 
palva ©   (2008-06-20 01:17) [16]

Интересно будет посмотреть, как окно вращается по эллиптической орбите вокруг курсора. А уравнение Кеплера все равно придется решать. Либо интегрировать численно, что гораздо сложнее.


 
Petr V. Abramov ©   (2008-06-20 01:32) [17]


> palva ©   (20.06.08 01:17) [16]
> Либо интегрировать численно,

"а мне по..., я Е в степени ИКС" :)


 
KSergey ©   (2008-06-20 08:29) [18]

Наверное надо найти школьный учебник физики (за какой вот товлько класс?) и перечитать в нем разделы, касающиеся решения задач о силах, приложенных к кирпичу, который еще и движется.

К стати, сила тяготения к курсору постоянная должна быть или нет? Пожалуй - нет, так реалистичнее будет.

А физику я не знаю, так что как именно считать - я тоже не знаю, а думать - лень. Но написать что-нибудь хотелось.


 
Knight ©   (2008-06-20 08:39) [19]

Прям как моя приколка для мышки... движение курсора по законам упругости пружинки... с настройкой жёскости пружины и массы курсора :))))))


 
Дуб ©   (2008-06-20 08:49) [20]


> Я так понимаю на окно действует постоянно две силы: G и
> I (инерция).

Не, учебник физики тут уже не поможет.


 
Simpson ©   (2008-06-20 10:58) [21]

KSergey ©   (20.06.08 08:29) [18]
IMHO Ржет над тобой народ.

У тебя откуда там сила? Ну где ты на мониторе силу нашел?
Вычесляй вектор движения и с каким то ускорением двигай картинку к окну, если
тебе инерция нужна просто вычесляй вектор чуть позже чем окно  сдвинулось/
было достигнуто. Можно расчитывать насколько далеко обьект за которым следиш
и в зависимости от этого менять скорость.


 
Mystic ©   (2008-06-20 13:10) [22]

> Да почему же? Пересечение диагоналей будем считать центром
> масс и вперед


А потом проведи эксперимент и получишь несоответствие. Как, например, объяснить тот факт, что ускорение свободного падения уменьшается при движении к центру земли? По твой формуле, если считать Землю материальной точкой, то расстояние до нее уменьшается, значит ускорение свободного падения должно увеличиваться? Но оно уменьшается :)

Тут же ускорение окна меняется в пределах окна. Значит точки окна, которые ближе к курсору, будут притягиваться сильнее. Окно будет разворачиваться... А реши через центр тяжести, потом проинтегрируй по площади окна и сравни результаты :)


 
Дуб ©   (2008-06-20 13:27) [23]

> Mystic ©   (20.06.08 13:10) [22]

В условии сказано, что притягивает курсор. О функции притяжения ничего не сказано. Откуда известно, что сила будет зависеть от растояния?


 
McSimm ©   (2008-06-20 13:58) [24]


> если
> тебе инерция нужна просто вычесляй вектор чуть позже чем
> окно  сдвинулось/
> было достигнуто.

смешно


 
McSimm ©   (2008-06-20 14:01) [25]

На самом деле такой эффект действительно есть, из-за него, например, происходит прецессия орбит планет. Но это не инерция, это релятивистская механика и в рамках окна монитора за пределами вычислительной точности :)


 
Simpson ©   (2008-06-20 14:02) [26]

McSimm ©   (20.06.08 13:58) [24]
В чем прикол то?
Или для программки в которой одна картинка за второй бегает надо обязательно моделировать поведение вселенной? Визуально какая то инерция будет насколько она реальна другой вопрос. Ну так это не моделирование соударения машин марки Форд, а просто прикол на экране.


 
McSimm ©   (2008-06-20 14:03) [27]


> Визуально какая то инерция будет

нет, это не будет похоже на инерцию.
кроме того, чтобы инерцию смоделировать достаточно всего лишь вычислять вектор вовремя, безо всяких задержек. Ничего более


 
Simpson ©   (2008-06-20 14:07) [28]

McSimm ©   (20.06.08 14:03) [27]
Не совем понял, поясни пожалуйста.


 
McSimm ©   (2008-06-20 14:13) [29]

Как смоделировать поведение окна для такой задачи уже написано выше. Эта модель полностью включает инерционное поведение. Упрощение в одном - сила притяжения считается постоянной и не зависит от формы и взаиморасположения предметов.
Достаточно правдоподобно для такого рода задачи. В каждый момент времени дельты скорости по x и по y расчитываются по простейшей формуле.

Зачем при этом нужно расчитывать вектор "позже" - мне не понятно.

Почему это приведет к явлению, не похожему на инерцию:
Представьте окно ускоренно движущееся к курсору. Перемещаем курсор на другую сторону экрана. По простому пути приращения скорости меняются на отрицательные (сразу). По вашему - еще какое-то время окно продолжает ускоряться в сторону, противоположную вектору силы. Это и есть некоторый эффект релятивистской механики, но ничего общего с инерцией.


 
euru ©   (2008-06-20 14:22) [30]

Нужно ещё учесть, что окно неоднородно. В нём имеются различные элементы управления, влияющие на распределение его масс.
Более того, нужно учитывать также, что поля ввода могут заполняться символами, обладающими собственной массой.


 
Игорь Шевченко ©   (2008-06-20 14:28) [31]


> обладающими собственной массой.


буквы ю и w весят больше других


 
Dmitry S ©   (2008-06-20 14:28) [32]

Вобщем как сделал я.
Первое что я осознал, это то, что инерция - это не сила. У тела в данный момент есть только координата и скорость. (Для каждой оси свои)

Один раз в промежуток времени dt я вычисляю новую скорость и новую координату по формуле:

ax := Fx / m;
X := X + dt * Vx + dt * dt * ax / 2;
Vx := Vx + dt * ax;

Для Y аналогично.

Fx находится как F1 * Cos(Ang1) + F2 * Cos(Ang2) + ... (для всех сил, которые действуют на тело).

Осталось только расчитать упругие столкновения с границами экрана и все:)
Ведь если ввести силу притяжения, которая, как я понимаю должна быть примерно равна 9.8*m, то за время dt тело может удариться о нижний край экрана, и получается, что сила притяжения сперва ускоряет объект, а потом тормозит. Вот думаю:)

PS.
Точка на которую указывает курсор - всего лишь направление одной из сил. Сама сила зависит от расстояния (обратнопропорциональна).


 
Dmitry S ©   (2008-06-20 14:29) [33]


> euru ©

"Не все то окно, что с контролами"... Почти © :)


 
McSimm ©   (2008-06-20 14:41) [34]


> Сама сила зависит от расстояния (обратнопропорциональна).


Правильнее квадрату расстояния. Не намного сложнее и реалистичнее.


 
Anatoly Podgoretsky ©   (2008-06-20 14:42) [35]

> Игорь Шевченко  (20.06.2008 14:28:31)  [31]

Ш и Ж еще тяжелее, легкая i а самое легкое пробел, вообще нифига не весит, одна видимость (дыра).


 
Dmitry S ©   (2008-06-20 14:44) [36]

т.е. по сути

F = k / (D*D).

где k - это коэффициент ??


 
DesWind   (2008-06-20 15:02) [37]

Угу, инерция это свойство вещества которое измеряется инерциальной массой.


 
Mystic ©   (2008-06-20 15:03) [38]

> В условии сказано, что притягивает курсор. О функции притяжения
> ничего не сказано. Откуда известно, что сила будет зависеть
> от растояния?


В условии задачи просилось решение с точки зрения физики :) Движение окна в сторону курсора можно реализовать и без всякой физики.


> Нужно ещё учесть, что окно неоднородно. В нём имеются различные
> элементы управления, влияющие на распределение его масс.
>
> Более того, нужно учитывать также, что поля ввода могут
> заполняться символами, обладающими собственной массой.


Можно еще ввести сопромат: под действием гравитационных возмущающих сил окно распадается на части. Или в точке курсора поместить черную дыру, и окно будет исчезать там. Или квантовая механика: существует определенная вероятность найти окно в нужной точке экрана.


 
palva ©   (2008-06-20 15:20) [39]

Приливные силы учесть будет прикольно. Типа буквочки сбегаются в сторону курсора. А если учесть, что буквочки друг о друга трутся и выделяется тепло, - вот вам и диссипация.


 
McSimm ©   (2008-06-20 15:29) [40]


> Dmitry S ©   (20.06.08 14:44) [36]
> т.е. по сути
> F = k / (D*D).
> где k - это коэффициент ??

Да, при условии игнорирования формы тел и постоянной массы.

Если все правильно реализовать, можно будет двигая курсором мыши попытаться поймать окно на орбиту :)



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

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

Наверх




Память: 0.57 MB
Время: 0.016 c
3-1203881506
Novichek
2008-02-24 22:31
2008.08.10
Сохранение данные по средствам ADOStoredProc


15-1214516044
homm
2008-06-27 01:34
2008.08.10
Поздравляю всех с победой


2-1215445327
Franzy
2008-07-07 19:42
2008.08.10
Глюк или я чего-то не понимаю?


15-1214405915
TUser
2008-06-25 18:58
2008.08.10
Если вас только 50 тысяч, то вы - лохи


15-1214166632
Petr V. Abramov
2008-06-23 00:30
2008.08.10
Тихо (^