Sign in to follow this  

Can this be reduced further?

This topic is 3857 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

-vn = dV0.y * t + sin(atan2(R0)) * |R0| - sin(atan2(R0) + dW0 * t) * |R0| I think that -vn = dV0.y * t + R0.y - sin(atan2(R0.y, R0.x) + dW0 * t) * |R0| is valid, but I feel that I can do even better.

Share this post


Link to post
Share on other sites
-vn = dV0.y * t + R0.y - R0.y * cos(dW0 * t) + R0.x * sin(dW0 * t)

because

sin(x + y) = sin(x)cos(y) * cos(x)sin(y)

according to

http://en.wikipedia.org/wiki/List_of_trigonometric_identities

Share this post


Link to post
Share on other sites
What happened to |R0| in that first step? There's no way to eliminate it in general. Is there something you're not telling us?

Some more identities that may come in handy are:

sin(arctan(x)) = x/√(1 + x2)
cos(arctan(x)) = 1/√(1 + x2)

Edit: This doesn't make sense, in the light of R0 being a vector.
You can end up with a giant fact or of |R0|/√(1 + R02) after applying these (as |R0|2 = R02). I get:

0 = vn - dV0.y * t + |R0|/√(1 + R02) (R0(1 - cos(dW0 * t)) + sin(dW0 * t))


That last term with (A.cos(x) + sin(x)) can be turned into B.sin(x + C) if you like. Anyway, solution is a little ambiguous. There are a lot of constants floating about and they all have an impact on uniqueness of solution. Provided vn is small enough, a solution will exist. Provided R0 isn't particularly awkward, boundedness of (sin + cos) will get you a solution if you iterate on t.

May I ask where you derived this from?

Admiral

[Edited by - TheAdmiral on May 24, 2007 5:46:53 PM]

Share this post


Link to post
Share on other sites
R0 is a vector2D, so atan(R0) is really atan2(R0.y, R0.x).

I'm trying to determine, given a ratio of rotational to translational change in response to a collision, what amount of the changes to apply towards my object's rotational velocity and translational velocity in order to cause it to neither penetrate nor separate from the other fixed object.

Share this post


Link to post
Share on other sites
Quote:
Original post by pTymN
R0 is a vector2D, so atan(R0) is really atan2(R0.y, R0.x).

I'm trying to determine, given a ratio of rotational to translational change in response to a collision, what amount of the changes to apply towards my object's rotational velocity and translational velocity in order to cause it to neither penetrate nor separate from the other fixed object.

I see. Well since R0 and vn are essentially arbitrary, there will be no guarantee of a quick-to-converge solution. And as far as I can see, there is no way to manipulate the equation into explicit form.

Wouldn't you be much better off just fudging it, and setting the body to be stationary, letting conservation of momentum take care of the rest? I'm just guessing - I've never had to do this kind of thing. Sure enough though, this problem must have been solved before, so maybe somebody else can guide you better than me.

Admiral

Share this post


Link to post
Share on other sites
I've avoided the problem completely at this point. :-) The problem was that for an object that can rotate, when it hit the floor, my iterative solver was going around and around pushing up on the various contact points, but the object's low angular mass meant that those pushes weren't doing much for actually pushing the object UP. Now I'm looking for those scenarios and treating them as if there was only one contact point between the center of mass of the object and the stationary one.

Share this post


Link to post
Share on other sites

This topic is 3857 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this