# Linear Velocity and Angular Velocity Point of Intersection

1. Apr 4, 2014

### Septimra

So, I have been studying angular velocity and linear velocity--and I want to use this information determine if a ray intersects a plane.

linear velocity = dp/dt
angular velocity = dΘ/dt

thus for linear velocity, you have a point in space: the intersection point could be described as

I = Po + rV

(Po) position initial, (I) position final, (V) linear velocity vector, (r) a scalar

then, eloquently you can set it to the plane equation
(Pp) point on plane, (Np) normal of plane

(I - Pp)*Np = 0

I*Np -Pp*Np = 0

by replacing I for the above equation

(Po + rV)*Np -Pp*Np = 0

when worked out you can find r

thus Po plus the velocity vector times a certain scalar will get you the intersection point.
How will this change if you are dealing with angular velocities.

If you guys remember, rotation always stumps me

this guy, in his blog:

http://www.wildbunny.co.uk/blog/201...tion-for-dummies/comment-page-2/#comment-3697

is talking about adding them together if you have certain info...i tried but I am extremely lost.

2. Apr 5, 2014

### Simon Bridge

The whole thing is very confused.
Probably not a good idea to use "p" for position, and you need to treat position as a vector.

You can use "t" to parameterize a line in 3D and interpret the parameterization as motion in space.

If you parameterize the line in Cartesian coordinates then you get a linear velocity interpretation of some of the constants and if you parameterize it in spherical polar coordinates you get an angular velocity interpretation of some constants.

To get the intersection, it is not good enough to have "a certain constant" you need to be able to show what it is.

Overall you have been too vague, please refine your question and resubmit.

3. Apr 5, 2014

### Septimra

Alright, I understand--apologizes

So you have a point, and you have a velocity of that point going in a particular direction

position is a vector(x)
velocity is a vector(v)

xf = xo + v
xf is the final position of the point after being translated by v

and you want to determine when this point is going to hit a plane
the normal of the plane is a vector(n)

the equation of a plane is:
n(xpf-xpo) = 0

xpf is a point on the plane
xpo is another point on the plane that is not xpf

with these two equations its possible to find a magnitude of v such that the point hits the plane

How does this change once angular velocity is introduced.
angular velocity is the change of the angle
do you use this information to calculate linear velocity, and simply add it aka:

xf = xo + v + linear_velocity

Thanks alot, hope this is clearer!

4. Apr 6, 2014

### Simon Bridge

... then it is not a velocity :)
It would be an average velocity for a particular, unnamed, time-step.

Looking through the rest, I'm not convinced you have understood what velocity and angular velocity are.
Let's start from the beginning:

You seem to be looking for the intersection of a trajectory with a surface; but for the specific case that
the surface is a plane and the trajectory is a straight line. The techniques can be applied to any surface and trajectory.

Because I'm lazy, I'll use overarrows in LaTeX and put <> around normal text to indicate vectors.

You can define the line as a trajectory such that $\vec r = \vec r_0 + \vec v t$
... i.e. the set of all points passing through a reference point <r0> in the direction of <v>.

If P is a point on a plane and <n> is a unit to it, then point Q is on the plane if:
$\vec n \cdot (\vec r_p - \vec r_q) = 0$

So the point the trajectory intersects the plane when $t: \vec n \cdot (\vec r_p - \vec r(t)) = 0$ or something like that right?

$\vec v$ would be considered the total instantaneous velocity of point $\vec r(t)$, and the equations do not depend on the choice coordinate system.

You can get a total angular velocity out of that by $\vec \omega(t) = \vec r(t) \times \vec v$ and the linear velocity is actually represented by a combination of the angular and radial velocities ... taken wrt the reference point that defines $\vec r$ in the first place. i.e. you are probably going to have to define a coordinate system for it to make sense.

You can use it as the point of intersection between a circle and a plane in much the same way though.

Last edited: Apr 6, 2014
5. Apr 6, 2014

### Septimra

Yes! This much I do understand. We are on the same page, now let me see if I can get ya on the same sentence ;)

Maybe my understanding of linear velocity and angular velocity wrt rotation is off, though. >.>

average angular velocity is the change in the angle for a particular, unnamed, time-step.
average linear velocity is the change in distance for a particular, unnamed, time-step.

Thus what I am attempting to compute is how much an object would rotate, about a particular origin, before it hits a plane.

I understand how to compute when an object would hit a plane, under no rotation.

But if I can calculate how much an object would rotate before it hits the plane. Effectively I can rotate the object by said amount first, and it becomes again--hopefully, reduced to the the prior case of: an object intersection with a plane under no rotation.

i.e. You throw a stick at a wall, and you want to determine how much a point on that stick will spin around a particular origin(most likely the stick's center of mass) before it strikes the wall.

Just so all my cards are on the table, and I don't confuse you anymore than I already have :P I am trying to create a efficient new continuous collision detection algorithm and this information is crucial for it to work with rotated rigid bodies.

Thanks again, your help is extremely relieving--I have been trying to figure this one out of some time now smh

6. Apr 6, 2014

### Simon Bridge

When you talk about rotation you need to be more specific because you need to specify the axis of rotation.

i.e. in the linear motion, the vector $\vec r(t)$ rotates about the origin while the object translates.

... so what do you imagine is doing the rotation?

Sounds like you want an object whose center of mass is travelling in a straight line, but the object itself is rotating about it's center of mass?

For that you'd need the geometry of the object, the rotation speed, an initial orientation, and the com trajectory.

For the stick example - you can plot the trajectory of the ends of the stick ...

eg. a stick length L with uniform mass density has com at L/2 from the ends (i.e. in the middle).
Define: The com has position $\vec r(t)$ and end A has position $\frac{L}{2}\vec s(t)$ from the center of mass.
Therefore the position of end A is $\vec r_A = \vec r + \vec s$ and the position of end B is $\vec r_B = \vec r - \vec s$.

Notice that $\vec s$ is constantly changing direction with frequency $\vec \omega$

$\vec\omega /\omega$ would be the unit normal for the plane of the rotation.

What I'd normally do is work out some sort of maximum impact parameter - when the com is closer to the surface than that, I would work out it's orientation in detail to see if any part of the object has impacted the surface.

For the above example, an obvious parameter to choose is L/2 ... it is handy to use an explicit parameter for time here: if the time to impact for the com is t, determined from the previous discussion, then t-L/2v is the time to get inside the impact parameter so it is possible that one end or the other of the stick has had an impact.

That would be quick. More exactly: you could also use that the velocity vector <v> has a projection in the plane of rotation that points towards the target plane (that you are interested in impacts with). When the distance to the target plane along this direction is equal to the impact parameter - you will have a collision very soon.

The total angle rotated in that time is $\theta = \omega (t-L/2v)$ and the total number of complete rotations would be $N=\theta/2\pi$.

What you do then depends on your simulation - you may just want to put an explosion at that point that is biger than L/2 in radius... fudging the impact. Or, since there is going to be less than one more rotation to impact, just use the exact trajectories for the endpoints.

7. Apr 7, 2014

### Septimra

Yea, I want an object to move about with a certain velocity about its center of mass, and the object to rotate around it...but not quite in that manner. This is what is bringing about the headache I would imagine.

So pretty much with collision detection, you have--essentially two main algorithms: discrete and continuous.

discrete checks triangle collisions per time step, continuous will predict triangle collisions.
The obvious trade off, accuracy for speed is present here.

So I am attempting to employ a new triangle continuous collision detection and this is how the algorithm goes:

When there are two triangles a distance apart, one of the triangles gets recreated out of 3 planes--essentially giving the edges of one of the triangles an extra dimension in the direction of the plane normal, and the other triangle's edges' are tested for intersection with those planes.

There are special cases were the triangle is smaller, but its all handled nicely.

This works because of linear motion, and the area it sweeps is similar to that of a triangular prism.

But then I decided I wanted to extend it to work with rotating triangles, it soon became apparent the area they sweep is that of a screw shape--and that is just too much to calculate in between frames.

Then I thought, if you could rotate the other triangle before hand
i.e. calculate how much a triangle would rotate before it hit a plane with said angular velocity, and said linear velocity

Then you could reduce the problem down back to that of before: that of a triangle vs the walls of a triangular prism.

I probably should have asked if that was even possible first...Is it: possible?

hmmmm, right here; I dont see what you are pointing out to me.

upon further research I found that sin is related to linear velocity as I thought it should be due to the oscillating nature of rotations. I feel like what your pointing out, and sin are one in the same, but dont quite see it yet.

Would you mind, tying all these concepts together to me. Like i get the ideas, and can use em in my Physics 1 class, but when i try to apply them to things I am doin'--I always come up short.

Thanks again!

8. Apr 7, 2014

### Simon Bridge

Sounds like what I was suggestion but done backwards.

Work out when the objects are close enough to collide, then decide what to do about that.
You can fudge or work the fine detail - already given you the formulae.
You may want to play around with moving blocks along string in your room and see how it works.

The corkscrew shape the object traces out in space... the way the screw rotates need not be perpendicular to the linear part of the trajectory.

The wages of sin is death.

You have not been using the physics understanding of these things to inform your algorithms so I'm not surprised.
You keep trying to use static geometry to solve dynamical problems and it is giving you trouble.

I won't work on this project with you without a contract and remuneration package because I'm a professional and this is the sort of thing I get paid to do. I can point you in the right direction but you seem reluctant to go there so there's not much more I can do except perhaps to get a partner.

Enjoy.