Ricochet of moving / rotating block off a wall

Click For Summary

Homework Help Overview

The discussion revolves around simulating the behavior of a rectangular block in a 2D physics environment, specifically focusing on how it ricochets off a wall while accounting for both translational and rotational motion. Participants are exploring the implications of momentum conservation and angular momentum during collisions, without the influence of gravity.

Discussion Character

  • Mixed

Approaches and Questions Raised

  • Participants are discussing the necessary formulas to describe the motion of a block just before and during impact with a wall. There are attempts to define the relationship between the block's position, rotation, and velocity at the moment of collision.

Discussion Status

Some participants have provided hints regarding the conservation of momentum and angular momentum, while others have raised concerns about the complexity introduced by elasticity. There is an ongoing exploration of how to compute new values for angular velocity and translational velocity after a collision, with some participants suggesting the use of free body diagrams for better understanding.

Contextual Notes

Participants are considering various factors such as angular velocity, translational velocity, and the effects of elasticity, while also noting that the simulation should account for the block's rotation around its center. There is a mention of the need for approximations and the limitations of certain approaches in specific scenarios.

DigitalPenman
Messages
4
Reaction score
0
Thank you in advance for your help!

The title pretty much says it all. I'm looking to write a 2D physics sim in which various objects can bounce off solid surfaces (without gravity). The objects are rotating and translating at a constant rate. We are dealing only with x and y - not z.

Let's take a rectangular block with these data:
mass = 'm'
width = 'w'
height = 'h'
center = 'cx, cy' (simply w/2, h/2)
rot = 'θ' (around the origin cx,cy in degrees)
slope = 'sx', 'sy' (speed and direction of travel)

say one corner of this rectangle is x0, y0 just before the point of impact. What formula could describe this scenario where x1, y1 is the same corner during impact?
i.e. x1 = ...
y1 = ...
Please feel free to fill in any missing data that I may need.
 
Physics news on Phys.org
What formula could describe this scenario where x1, y1 is the same corner during impact?
I don't understand that question.

Here are some hints:
Momentum is conserved.
Angular momentum around the point of collision is conserved.
Neglecting friction, momentum transfer will occur perpendicular to the surface only.
Do you have elastic collisions? If yes, energy is conserved.
 
mfb said:
I don't understand that question.

Here are some hints:
Momentum is conserved.
Angular momentum around the point of collision is conserved.
Neglecting friction, momentum transfer will occur perpendicular to the surface only.
Do you have elastic collisions? If yes, energy is conserved.
I understand that elasticity in the objects is a factor. Let us simply assume that the wall has elasticity 'We' and the object has an elasticity 'Oe'.

If the object is in motion i.e. every point on the object is incremented by x = 'sx' and y = 'sy' and then the object rotates around its center point (cx, cy) by a rotation of θ, this can be defined by:

x' = cx + (x - cx)cosθ + (y - cy)sinθ + sx
y' = cy + (y - cy)cosθ - (x - cx)sinθ + sy

Any arbitrary x,y point on the rectangle is rotated and translated with this formula which works fine. My problems is when this object hits a wall and new values for θ, sx and sy must be computed.

Please feel free to add required variables.
 
DigitalPenman said:
I understand that elasticity in the objects is a factor. Let us simply assume that the wall has elasticity 'We' and the object has an elasticity 'Oe'.
Are you sure that you want to use elastic materials? That will complicate the required computations a lot.

My problems is when this object hits a wall and new values for θ, sx and sy must be computed.
See my previous post.

And in addition to the current angle θ, you need an angular velocity.
 
I guess I shouldn't say elasticity. Basically, any minimal complexity variable so that the object can ricochet off the wall and not just stop when it hits the wall. I guess a good way to put it would be a solid object ricocheting off a solid wall in 2D space with no gravity.

Sorry, I forgot to say that the angle θ is actually incremented by an angular velocity 'av'. in a prior step. also, sx, sy would have to be incremented by some value on each step or the object wouldn't move say sx0, sy0. The whole thing would be:

loop{
θ = θ + av

x' = cx + (x - cx)cosθ + (y - cy)sinθ + sx
y' = cy + (y - cy)cosθ - (x - cx)sinθ + sy

sx = sx + sx0
sy = sy + sy0
}
 
Elasticity is not what you think it is. It is just conservation of momentum you're interested in. elasticity will deform the object and it's nonconserving, so in the end your objects will stop moving.

When a solid square with known translational and angular velocity hits a wall with one of it's corners, then use the conservation equations to calculate the new angular and translational velocity. Just draw a free body diagram for this situation for a better understanding.
 
Wow, thanks a million! The application seems to simulate the new rotation after the collision very naturally now.

Please see if this can be confirmed:

L = r x p for angular velocity, in my case:

r = (r1,r2) ==> (r1, r2) being the vector from the center (cx, cy) of the object to the point which has collided with the wall: x,y.
r1 = cx - x and r2 = cy - y.

p = mv which in my case is the vector p = (p1,p2) where p1 = m(sx), p2 = m(sy). sx and sy define the velocity of the object. I simply use an arbitrary mass of m which I added as an extra specification for an object.

so L = new rotation = r x p would be

L = new rotation = (cx - x)(m(sy)) - (cy-y)(m(sx)) using the cross product.
 
Be aware that your approach is an approximation. It is not suited for the case where objects turn around their own center. For instance, you can use it for the rotation of the Earth around the sun, but not for the rotation of the Earth around its own axis.
Then you should use
L = Iw,
with I the moment of inertia and w the angular velocity.
Of course, some simple tests (first with angular velocity zero) can show you that your simulation works. Always try to find a case with a known solution that you can simulate.
 

Similar threads

Replies
6
Views
16K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
2
Views
3K
Replies
4
Views
11K