How Can I Identify a Surface as a Cone in CAD Software?

  • Context: Graduate 
  • Thread starter Thread starter tricha122
  • Start date Start date
  • Tags Tags
    cone surface
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 2K views
tricha122
Messages
18
Reaction score
0
Hi, I’m using some CAD software trying to automate some surface identification, and I’m looking to find a way to identify whether a surface is a cone.

I will have access to vertices and normals at discrete points on the surface, but it will be expected that the number of these points will be different from cone to cone, and the cone orientation and position may be arbitrary.

I know that once I find the vertex of the cone I can project all the points I have to anunit sphere about the vertex. The normal to the circle that is transcribed projected on the sphere will give me the axis of the cone. But I need a way to determine the location of the vertex (which I may not have a point for)

Anyone have any suggestions? Thanks!
 
Physics news on Phys.org
Assume we are given a set of at least three data, each one of which is the coordinates of a point on the surface and the components of the normal at that point. Each datum defines a line in 3D space that passes through the point on the surface in the direction of the normal. Call that the 'normal line' for that datum.

If the surface is a cone, there will exist a unique plane P through the origin of the coordinate system, such that the projections of the normal lines onto P all intersect at a single point Q. That point is the intersection of P with the axis of the cone.

The plane P is specified by two parameters, and the point Q where lines intersect is specified by a further two parameters. Hence there are four unknowns. Given four data we can write four equations, each one specifying that a different one of the four normal lines passes through Q. We can solve the equations to find the plane P and the point Q. From that we can obtain the equation of the cone's axis.

It remains to find the vertex of the cone. To do that, measure the distance of each datum from the cone axis. By linear extrapolation between data you will be able to find the point where the distance becomes zero. That point is the vertex.

Given the vertex, the axis and one datum, you can calculate the equation of the cone.
Use the first four points to solve the equations. That tells you what cone the surface must be if it IS a cone. Additional points after the fourth serve to test whether it IS a cone.

We can never be certain that it is a cone, because there could always be a small deformation in a non-sampled part of the surface. But if there is even one datum whose normal line does not have a projection on P that passes through Q, we can definitively say the surface is not a cone.

EDIT: It might be six points that are needed to complete the specification, ie to find the vertex and the shape. But only four equations should be needed to find P and Q.
 
Last edited:


Hi there! One possible approach could be to use the cross product of two vectors formed by three non-collinear points on the surface. If the resulting vector is perpendicular to the surface, then it could indicate that it is a cone. You could also try using the formula for the volume of a cone and see if the calculated volume matches with the points you have. Additionally, you could use the Hough transform algorithm, which is commonly used in image processing for detecting shapes, to identify the cone. Good luck!