<p>看着<a href="http://docs.sympy.org/dev/index.html" rel="nofollow">sympy</a>我觉得它有你需要的一切。
(我试图向您提供示例代码;不幸的是,我未能使用gmpy2安装sympy,而不是无用的python内置数学)</p>
<p>你有:</p>
<ul>
<li>带有<a href="http://docs.sympy.org/dev/modules/geometry.html#sympy.geometry.ellipse.Ellipse.rotate" rel="nofollow">rotate</a>方法的<a href="http://docs.sympy.org/dev/modules/geometry.html#module-sympy.geometry.ellipse" rel="nofollow">ellipse</a>,可以是带有其他椭圆的<a href="http://docs.sympy.org/dev/modules/geometry.html#sympy.geometry.ellipse.Ellipse.intersection" rel="nofollow">intersected</a></li>
<li>或者一个<a href="http://docs.sympy.org/dev/modules/geometry.html#sympy.geometry.util.intersection" rel="nofollow">arbitrary intersection</a>函数,它接受..的可变数。。他们称之为“几何实体”。</li>
</ul>
<p>从他们的例子来看,我认为绝对有可能相交于两个椭圆:</p>
<pre><code>>>> from sympy import Ellipse, Point, Line, sqrt
>>> e = Ellipse(Point(0, 0), 5, 7)
...
>>> e.intersection(Ellipse(Point(1, 0), 4, 3))
[Point(0, -3*sqrt(15)/4), Point(0, 3*sqrt(15)/4)]
>>> e.intersection(Ellipse(Point(5, 0), 4, 3))
[Point(2, -3*sqrt(7)/4), Point(2, 3*sqrt(7)/4)]
>>> e.intersection(Ellipse(Point(100500, 0), 4, 3))
[]
>>> e.intersection(Ellipse(Point(0, 0), 3, 4))
[Point(-363/175, -48*sqrt(111)/175), Point(-363/175, 48*sqrt(111)/175),
Point(3, 0)]
>>> e.intersection(Ellipse(Point(-1, 0), 3, 4))
[Point(-17/5, -12/5), Point(-17/5, 12/5), Point(7/5, -12/5),
Point(7/5, 12/5)]
</code></pre>
<p>编辑:由于sympy不支持一般椭圆(ax^2+bx+cy^2+dy+exy+f)</p>
<p>你应该自己建立方程并转换它们,然后用它们的解算器来寻找交点。</p>