def polygon_patches(self, cyl=False):
poly_settings = dict(closed=True, facecolor="#eeeeee", linewidth=1.,
edgecolor="k")
ball_settings = dict(facecolor="#aaaaaa", linewidth=1., edgecolor="k",
alpha=0.5)
ball_bind_zone_settings = dict(facecolor="#ffaaaa", linewidth=0.,
alpha=0.5)
patches = []
for dom in self.domains:
domp = dom.domain
if isinstance(domp, Polygon):
polygon = domp.nodes
polygon = np.array(polygon)
patches.append(mpatches.Polygon(polygon, **poly_settings))
if not cyl:
polygon_m = np.column_stack([-polygon[:,0], polygon[:,1]])
patches.append(mpatches.Polygon(polygon_m, **poly_settings))
elif isinstance(domp, Ball):
xy = domp.x0[0], domp.x0[2]
if dom.binding and dom.bind_type == "zone":
p1 = mpatches.Circle(xy, domp.r + dom.ra,
**ball_bind_zone_settings)
p1.set_zorder(-100)
patches.append(p1)
p = mpatches.Circle(xy, domp.r, **ball_settings)
p.set_zorder(200)
patches.append(p)
return patches
评论列表
文章目录