[ODE] Maths Stuff

Ander Taylor ander_taylor at hotmail.com
Fri Apr 25 04:12:01 2003


Thanks Julien.

I will have to stare at it for a while, but I can feel it sinking in : )

Cheers,

Ander


Julien wrote:

Ander Taylor wrote:

>
>Hi All,
>
>I want to, given a vector and a plane that intersect, get the length of the 
>segments on either side of the plane.
>
>I need help : )
>
>Cheers,
>
>Ander
>
>
>
>
>_________________________________________________________________
>MSN Instant Messenger now available on Australian mobile phones. Go to  
>http://ninemsn.com.au/mobilecentral/hotmail_messenger.asp
>
>_______________________________________________
>ODE mailing list
>ODE@q12.org
>http://q12.org/mailman/listinfo/ode
>
Hi Ander,
well in fact, I guess that if you can know that a plane intersects a vector, 
you can know the lengths of its segments on either side of the plane... :-) 
let's do it :

you said that the vector and the plane are given, so i assume you know at 
least the vector's start point's (V2) and the vector's end point's (V1) 
coordinates, and the normal vector (N) of the plane.
as N is also a vector, you know its start point's (N2) and its end point's 
(N1) coordinates, and as it is a normal vector, i assume its length is 1!!!

N.B. : the vector's coordinates and the normal's coordinates must be 
expressed in the same coordinates system (i.e. either in the plane's 
coordinates system or in the world's coordinates system, but only one)

get v'1 = V1.N and v'2 = V2.N (these are the length for V1 and V2 along N)
--->(strictly, v'1 = ( V1 - N2 ) . ( N1 - N2 ) and v'2 = ( V2 - N2 ) . ( N1 
- N2 ) in any coordinates system)

now get alpha = v'1 / (v'1 - v'2) and let's test it :
  if alpha > 1, then : there are no intersection between the vector and the 
plane
  if alpha = 1, then : the vector is in touch with the plane (common point 
is V2)
  if 0 < alpha < 1, then : the vector intersects with the plane, and { alpha 
* || V1 - V2 || } and { ( 1 - alpha ) * || V1 - V2 || } are the both lengths 
you looking for.
  if alpha = 0, then : the vector is in touch with the plane (common point 
is V1)
  if alpha < 0, then : there are no intersection between the vector and the 
plane

hope that will help you, and that i did not forgive any conditions... ;-)
Julien.



_________________________________________________________________
MSN Instant Messenger now available on Australian mobile phones. Go to  
http://ninemsn.com.au/mobilecentral/hotmail_messenger.asp