Calculate LinearVelocity from Offset and AngularVelocity

I’ve posted something like this before, but since i’ve got no usable answer, not even a hint, i’ll post it differently.

I have an AngularVelocity: 0,2,0
I have an offset from the rotation center: -2,0,-2
How can i calculate linear velocity from this?

Might look like a simple calculation, but i can’t figure it out, and thought you guys might help.

1 Like

You say you want to calculate linear velocity from an offset and angular velocity. But I’m going to make a few assumptions here:

  • by linear velocity you mean tangential velocity
  • by offset you mean a position vector, assumed to be a rotation around the origin
  • you are using the standard convention when referring to angular velocity

this is just the cross product of the angular velocity and its position vector.

You can see a proof for this here: conventions - Representation Of Linear Velocity as Cross Product - Physics Stack Exchange

4 Likes

Sorry for the late reply. Timezones are funny, so if you reply late it’s okay, i did too.
…But can this work in reverse? This sounds stupid, but i’m relatively new to this advanced math.

So can i calculate the other two like this? I’d imagine it’s more complicated than that.
Thank you for pointing this out to me.

1 Like

Not quite, since cross product is a one way function and you can’t really get an “inverse” cross product, there’s a little bit more you need to do. In the case of angular velocity,

angular velocity is the cross product of the position vector and tangential velocity, divided by (the norm of the position vector) squared. This will look something like this:

Screenshot_3

where omega is angular velocity, r is the position vector, and v is the tangential velocity.

As for getting the position vector from angular velocity and tangential velocity, I am not sure if this is possible as I have never experimented with it nor tried it.

2 Likes

Above and beyond.
Thank you so much.

2 Likes

For future reference:
AngularVelocity = LinearVelocity:Cross(Offset) / (Offset.Magnitude^2)
LinearVelocity = Offset:Cross(AngularVelocity)
Offset = LinearVelocity:Cross(AngularVelocity) / AngularVelocity.Magnitude * -1
Offset = AngularVelocity:Cross(LinearVelocity) / LinearVelocity.Magnitude

Edit: Late because of outage but yeah… recalculated the offset equation. Left the old one there on purpose, so people don’t get fooled.

3 Likes