In [1]:
%matplotlib inline

克隆supercell


In [2]:
nodes, edges = [], []

创建nodes 和 edges

top位相关


In [3]:
from catplot.grid_components.nodes import Node2D
from catplot.grid_components.edges import Edge2D

In [4]:
top = Node2D([0.0, 0.0], color="#2A6A9C")

In [5]:
t1 = Node2D([0.0, 1.0])
t2 = Node2D([1.0, 0.0])

In [6]:
nodes.append(top)

In [7]:
e1 = Edge2D(top, t1, width=3)
e2 = Edge2D(top, t2, width=3)

In [8]:
edges.extend([e1, e2])

bridge相关


In [9]:
bridge1 = Node2D([0.0, 0.5], style="s", size=200, color="#B57C7A", alpha=0.6)
bridge2 = Node2D([0.5, 0.0], style="s", size=200, color="#B57C7A", alpha=0.6)

In [10]:
b1 = bridge1.clone([0.5, 0.5])
b2 = bridge2.clone([0.5, 0.5])

In [11]:
nodes.extend([bridge1, bridge2])

In [12]:
e1 = Edge2D(bridge1, b1)
e2 = Edge2D(bridge1, bridge2)
e3 = Edge2D(bridge2, b2)
e4 = Edge2D(b1, b2)

In [13]:
edges.extend([e1, e2, e3, e4])

hollow位


In [14]:
h = Node2D([0.5, 0.5], style="H", size=300, color="#D9A23F", alpha=0.6)

In [15]:
nodes.append(h)

绘制


In [16]:
from catplot.grid_components.grid_canvas import Grid2DCanvas

In [17]:
canvas = Grid2DCanvas()



In [18]:
from catplot.grid_components.supercell import SuperCell2D

In [19]:
supercell = SuperCell2D(nodes, edges)

In [20]:
canvas.add_supercell(supercell)

In [21]:
canvas.draw()
canvas.figure


Out[21]:

克隆supercell


In [22]:
s1 = supercell.clone([1.0, 0.0])

In [23]:
canvas.add_supercell(s1)

In [24]:
canvas.redraw()
canvas.figure


Out[24]:

In [25]:
s2 = supercell.clone([0.0, 1.0])
s3 = supercell.clone([1.0, 1.0])

In [26]:
canvas.add_supercell(s2)
canvas.add_supercell(s3)

In [27]:
canvas.redraw()
canvas.figure


Out[27]: