二次曲线的齐次表示是一个矩阵
m = [A C D;C B E;D E F]表示方程
A x^2 + B y^2 + 2C xy + 2D x + 2Ey + F = 0
给定两个矩阵E1和E2代表两个二次曲线,代码将检测它们的所有交点。
例如:
___________________
以原点为中心的圆
E1 = [1 0 0;0 1 0;0 0 3)
以原点为中心的椭圆
E2 = [1 0 0;0 3 0;0 0 6]
得到四个齐次交点
P = intersectConics(E1, E2)
%绘制归一化点
plot(P(1,:) ./ P(3,:), P(2,:) ./ P(3,:), 'ro');
___________________
更多信息:http://www.pigei.com/conics-intersection
以及描述该方法的详细示例:http://math.stackexchange.com/questions/316849/intersection-of-conics-using-matrix-representation
一个c++开放源码的实现也在https://bitbucket.org/pierluigi/conicsintersection
___________________
如果这个代码有用,请考虑捐赠:
比特币:3 bud7cenbpp15hzxbpzpdgnh11fav1kvfi
引用作为
Pierluigi塔代伊(2021)。圆锥曲线论的十字路口(//www.tianjin-qmedu.com/matlabcentral/fileexchange/28318-conics-intersection), MATLAB中央文件交换。检索.