1. This cone is not oriented about any of the three co-ordinate axes
but is along an axis defined by an arbitrary straight line (known)
2. It opening angle of the cone is known ( the angle at the vertex of
the cone)
3. The vertex of the cone in XYZ co-ordinates is known.
Can any one help me with this. This equation needs to be in 3D. I need
this very urgently.
Thanks
Madhava
M: vertex vector
No: unit axis vector
a: angle between axis vector and surface (half opening angle)
X: vector to point on the cone surface
[(X-M)^T*No]^2 = [(X-M)^T*(X-M)]*[cos(a)]^2
For better readability:
[(X-M)' *No]^2 = [(X-M)' *(X-M)] [cos(a)]^2
Best regards --Gernot Hoffmann
hi Gernot,
Thanks for the early rep ly.
Can you please explain how you got there.
I also would like to know the meaning of T. you have not defined
it here. Also M being a point in XYZ co-ordinates, I dont understand
the (X-M) part. Please clarify
Thanks
Madhava
Madhava,
A^T means 'transposed' - a row instead of a column.
A^T*B means ax*bx+ay*by+az*bz.
That's the same as the dot product (A.B) .
X-M is a vector which contains the known vector M
(which points to the vertex) and any arbitrary vector X
from the origin to the surface.
Sorry, without a drawing it's impossible to derive the
equation as mentioned in my recent post.
Best regards --Gernot Hoffmann
Recall the connection between a dot product of two vectors and their
angle:
dot(A, B) = cos(alpha) * ||A|| * ||B||
where alpha is the angle between A and B in the range [0, pi[.
Assume for a while ||A|| != 0 and ||B|| != 0. From this it is easy to
derive that the angle between two vectors A and B is given by:
alpha = arccos(dot(A, B) / (||A|| * ||B||))
Let M be the tip of the cone, N the axis vector of any length and alpha
the angle of the cone. Any point X on the cone is characterized by:
"vector (X - M) forms an angle alpha with N". In maths:
alpha = arccos(dot(X - M, N) / (||X - M|| * ||N||))
We assumed that ||X - M|| != 0. But clearly X = M is also part of the
cone: it is the tip of the cone. To include this point we need to
rearrange the equation so as to remove the singularity due to the
division:
cos(alpha) = dot(X - M, N) / (||X - M|| * ||N||)
=>
cos(alpha) * ||X - M|| * ||N|| = dot(X - M, N)
All the points X that satisfy this equation are on the cone. Note this
equation describes a "single-cone", not a double-cone. This is what
people usually mean by a cone.
For the double-cone that extends in both directions, square away both
sides to get rid of the sign in the dot product:
(Note ||A||^2 = dot(A, A))
cos^2(alpha) * dot(X - M, X - M) * dot(N, N) = dot^2(X - M, N)
If you know N is of unit length, then dot(N, N) = 1 and the equation
reduces to:
cos^2(alpha) * dot(X - M, X - M) = dot^2(X - M, N)
And this is the equation Gernot gave you.
--
Kalle Rutanen
http://kaba.hilvi.org