Pierluigi Taddei

Eternal incomplete home page

  • Increase font size
  • Default font size
  • Decrease font size
Home Conics Intersection

Conic intersection

I made some small bug fixes to the conic intersection package. Thanks to Dany for pointing the bug out. The matlab code that you can download here can be used to detect the (up to) four intersections of two conics. The usage is quite straightforward but anyway, here is an example:

%%the homogeneous representation of a conic is a matrix 
%% m = [A C D; C B E; D E F] that represents the equation 
%% A x^2 + B y^2 + 2C xy + 2D x + 2Ey + F = 0

%a circle centered in the origin

E1 = [1 0 0; 0 1 0; 0 0 -3] 

%an ellipse centered in the origin

E2 = [1 0 0; 0 3 0; 0 0 -6] 

%get the four homogeneous intersections
P = intersectConics(E1, E2) 
%plot the normalized points
plot(P(1,:) ./ P(3,:) , P(2,:) ./ P(3,:), 'ro');

Algorithm description

The solutions to a two second degree equations system in two variables may be seen as the coordinates of the intersections of two generic conic section. In particular two conics may possess none, two, four possibly coincident intersection points. The best method to locate these solutions is to exploit the homogeneous matrix representation of conic sections, i.e. a 3x3 symmetric matrix which depends on six parameters.

The procedure to locate the intersection points follows these steps:

  • given the two conics C1 and C2 consider the pencil of conics given by their linear combination ?C1 + ?C2
  • identify the homogeneous parameters (?,?) which corresponds to the degenerate conic of the pencil. This can be done by imposing that det(?C1 + ?C2) = 0, which turns out to be the solution to a third degree equation.
  • given the degenerate cone C0, identify the two, possibly coincident, lines constituting it
  • intersects each identified line with one of the two original conic; this step can be done efficiently using the dual conic representation of C0
  • the points of intersection will represent the solution to the initial equation system

Matlab implementation

In the library you will find a couple of matlab function which implements the above steps to intersect two conics. In particular the main functions are:

  • intersectConics : this is the main function to perform the intersection
  • decomposeDegenerateConic: this function allow to split a degenerate conic into two lines
  • intersecLineConic: this function recover the, possibly two, points of intersection of a line and a conic

If you have any comments please refer to me by email!




Pierluigi Taddei

European Joint Research Centre
via Enrico Fermi, 2749
21027 Ispra


Email: pierluigi.taddei at gmail dot com

Phone: +39 3491566235


Who I Am

I am Pierluigi Taddei,

I work on 3D Reconstruction and Computer Vision since 2006, currently I am working as a Post Doc at the European Joint Research Centre (JRC) where I mainly deal with 3D reconstruction using laser scanners. I am also interested in other fields such as developing rich internet applications, computer graphic applications and geometric issues.

This site contains some articles related to my research and other activities I find useful to share. Unfortunately I am always running out of time, so this list will be eternally incomplete! Please contact me for any questions