2010-08-16 3 views
0

im в настоящее время пытается выяснить, как разработать метод в моей программе, который заботится о силах и обновляет положения прямоугольника после столкновения со стеной. На данный момент я просто двигаюсь внутри стен. Я знаю уравнения движения в терминах ускорения и понимаю, что их нужно интегрировать в метод RK4 и соответствующие позиции x1, y1, theta1 и x2, y2, theta2 можно затем вычислить, и эти позиции обновляются .... мне действительно нужно знать, что мне нужны другие уравнения? и как я применяю угловое положение к положениям x, y? im не уверен относительно инерции/крутящего момента либо ..... для рисования прямоугольника im с использованием (x1, y1) (x2, y2) позиций в отличие от (x, y, w, h) ... вот уравнения я знаю, что нужно для метода RK4 для (x1, y1) прямоугольника:Физика прямоугольников и столкновения

vx1' = (- к vx1)/м

vy1' = (- мг - к vy1)/м

ω»= - к ω/I

x1' = vx1

y1 = vy1

θ»= ω

к = демпфирование Const I = инерция, омега = угловая скорость

Любая помощь будет высоко оценена как это было подслушивания меня на некоторое время .... Спасибо

+2

У меня нет полезного ответа для вас, но я бы предложил изменить название вопроса, чтобы оно было более общим. То, что вы просите, на самом деле не имеет ничего общего с C# или GDI +, о которых я действительно знаю. Если вы сделаете заголовок и теги более геометрическими/физическими, вы, вероятно, привлечете больше людей, которые могут вам помочь. – Josh

+0

Возможно, вам стоит опубликовать это в mathoverflow.net – thelost

+0

@thelost - определенно не mathoverflow - это для исследований в постграде. math.stackexchange.com может быть лучше. –

ответ

3

Если вы просто хотите, чтобы выполнили задание, тогда рассмотрите возможность использования готового и отлаженного физического движка. Я очень рекомендую FarseerPhysics, который является бесплатным и открытым исходным кодом.

Если вас интересует, как рассчитать физика, то http://math.stackexchange.com может быть более уместным.

Если вы заинтересованы в том, как реализовать физику, то лучшим выбором будет просмотр различных обучающих программ, потому что это довольно большая и сложная тема. Или спросите здесь, но только если у вас есть вопрос. Возможно, GameDev - хорошая отправная точка.

Если вы идете по пути реализации этого, взгляните на это tutorial on collision detection, чтобы получить представление о том, что вы получаете.

У вас нет для использования интегратора RK4 для этого - это просто, что RK4 обеспечивает хороший баланс между точностью и сложностью. Простая интеграция (x += V * dt) может обеспечить достаточно приемлемые результаты и намного меньше работы, чем RK4.

Смежные вопросы