Conics intersection

Given the homogeneous matrices of two conics it recovers the (up to) four intersection points
Updated 30 Aug 2015

View License

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
Given two matrix E1 and E2 representing two conics, the code will detect all their intersections.

For instance:
%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');

For more info:
and a detailed example describing the method:

A C++ open souce implementation is also present at

If this code was useful, please consider a donation:
Bitcoin: 3BUD7cEnbpp15hZXbPZpdgnH11FAV1kvfi

Cite As

Pierluigi Taddei (2024). Conics intersection (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Verification, Validation, and Test in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

summary update
added C++ link

added case for linear equations

v.1.0.3: bug fixes (degenerate case)

changed URL