0

2つの重なり合う楕円を描画する必要があります。現在のコードでは、2番目の楕円のエッジが最初の楕円の上に配置されています。コードは次のとおりです。

from matplotlib.pyplot import figure, show
from matplotlib import patches
fig = figure()
ax = fig.add_subplot(111)
ell = patches.Ellipse((0.15, 0.7), .3, .1, angle = 25, facecolor = 'white', edgecolor = 'gray', linewidth = 2, transform=ax.transAxes)
ax.add_artist(ell)
ell = patches.Ellipse((0.30, 0.7), .3, .1, angle = -25, facecolor = 'white', edgecolor = 'gray', linewidth = 2, transform=ax.transAxes)
ax.add_artist(ell)
show()

これにより、 「重なり合う円を結合する方法」の最初の図のような図が生成されます。(ここに自分のフィギュアを投稿することはできません)2番目のフィギュアのようなものが欲しいのですが。

matplotlibにこの問題の解決策はありますか?

4

1 に答える 1

0

はい。ただし、Ellipseには必要な角度引数とがないため、http://matplotlib.org/1.1.1/api/artist_api.html? highlight = arc#matplotlib.patches.Arcを使用する必要があります。theta1theta2

これらの角度を実際に計算することに関しては、楕円の閉じた形の解は、円の参照された質問で与えられた方程式よりもかなり複雑になる可能性があります。幾何学的な解がわからない場合は、それらを見つけるために数値近似に頼らなければならない場合があります。楕円Aの点taと楕円Bの点tbの間の距離を計算する距離関数f(ta、tb)を記述し、 2つの極小値f(ta1、tb1)とf(ta2、tb2)。

于 2012-09-24T12:13:02.277 に答える