Newer
Older
#!/usr/bin/env sage
from pseudowalls import *
def plot():
O = Chern_Char(1,0)
O1 = exponential_chern(1,1)
O1inv = exponential_chern(-1,1)
O2 = O1 * O1
O_x = Chern_Char(0,1)
def plot_central_charge(chern, name, argument = None, radius = None):
Z = stability.Mumford().central_charge(chern)
x = Z.real()
y = Z.imag()
if not argument:
argument = arctan(y/x) if x != 0 else pi / 2
if argument <= 0:
argument += pi
if not radius:
radius = (pi-argument/2)/pi
return point(
Z,
marker = "o",
rgbcolor = "white",
#markeredgecolor = "purple",
zorder = 100
) + point(
Z,
marker = name,
rgbcolor = "red",
zorder = 101
) + line(
(0, Z),
rgbcolor = "red",
linestyle = "dashed",
zorder = 99
) + disk(
(0,0),
float(radius),
(0, float(argument)),
alpha=.2,
fill=False,
thickness=1,
rgbcolor="purple"
)
p = sum(
plot_central_charge(chern, name)
for chern, name in [
(O1, r"$\mathcal{Z}(\mathcal{O}(1))$"),
(O, r"$\mathcal{Z}(\mathcal{O}_X)$"),
(O1inv, r"$\mathcal{Z}(\mathcal{O}(-1))$"),
(O2, r"$\mathcal{Z}(\mathcal{O}(2))$"),
(O_x, r"$\mathcal{Z}(\mathcal{O}_p)$")
]
)
xmax = (2.5)
xmin = (-2.5)
ymin = (-0.25)
ymax = (1.5)
aspect_ratio = (1)
p += polygon(
[
(xmax + 1,0),
(xmin - 1,0),
(xmin - 1,ymax + 1),
(xmax + 1,ymax + 1)
],
rgbcolor = "yellow",
alpha = 0.2,
zorder = 102
)
p.xmax(xmax)
p.xmin(xmin)
p.ymin(ymin)
p.ymax(ymax)
p.set_aspect_ratio(aspect_ratio)
p.axes_labels([r"$\mathcal{R}$",r"$\mathcal{I}$"])
return p