using Plots a1 = [sqrt(3)/2,-1/2] a2 = [sqrt(3)/2,1/2] drA = 2a1/3+2a2/3 drB = a1/3+a2/3 lw = 0.5 ls = :dash plot(size=(500,500), legend=false) plot!([drA[1]],[drA[2]],marker=:circle,color="red") #原子A plot!([drB[1]],[drB[2]],marker=:circle,color="blue") #原子B plot!([0,a1[1]],[0,a1[2]], lw=lw, ls =ls,color="black") #a1 plot!([a2[1],a2[1]+a1[1]],[a2[2],a2[2]+a1[2]], lw=lw, ls =ls,color="black") #a1 plot!([0,a2[1]],[0,a2[2]], lw=lw, ls =ls,color="brown") #a2 plot!([a1[1],a1[1]+a2[1]],[a1[2],a1[2]+a2[2]], lw=lw, ls =ls,color="brown") #a2 plot!(aspect_ratio=:equal) r(n,m)=n*a1+m*a2 Nx=10 Ny=10 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny rA = r(n,m)+drA rB = r(n,m)+drB plot!([rA[1]],[rA[2]],marker=:circle,color="red") #原子A plot!([rB[1]],[rB[2]],marker=:circle,color="blue") #原子B end end plot!(xlim=(7.5,12.5),ylim=(-2,2),aspect_ratio=:equal) Nx=10 Ny=10 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny rA = r(n,m)+drA rB = r(n,m)+drB plot!([rA[1],rB[1]],[rA[2],rB[2]], color="red", lw=lw) plot!([rA[1]-a1[1],rB[1]],[rA[2]-a1[2],rB[2]], color="red", lw=lw) plot!([rA[1]-a2[1],rB[1]],[rA[2]-a2[2],rB[2]], color="red", lw=lw) end end plot!(aspect_ratio=:equal) θ=π/8 M = [ cos(θ) -sin(θ) sin(θ) cos(θ) ] a1d = M*a1 a2d = M*a2 drAd = 2a1d/3+2a2d/3 drBd = a1d/3+a2d/3 rd(n,m) = n*a1d+m*a2d Nx=10 Ny=10 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny rAd = rd(n,m)+drAd rBd = rd(n,m)+drBd plot!([rAd[1],rBd[1]],[rAd[2],rBd[2]], color="blue", lw=lw) plot!([rAd[1]-a1d[1],rBd[1]],[rAd[2]-a1d[2],rBd[2]], color="blue", lw=lw) plot!([rAd[1]-a2d[1],rBd[1]],[rAd[2]-a2d[2],rBd[2]], color="blue", lw=lw) end end plot!(aspect_ratio=:equal) function plotGraphene(θ,n,m,color) M = [ cos(θ) -sin(θ) sin(θ) cos(θ) ] a1 = [sqrt(3)/2,-1/2] a2 = [sqrt(3)/2,1/2] lw = 0.5 ls = :dash a1d = M*a1 a2d = M*a2 drAd = 2a1d/3+2a2d/3 drBd = a1d/3+a2d/3 rd = n*a1d+m*a2d rAd = rd+drAd rBd = rd+drBd plot!([rAd[1],rBd[1]],[rAd[2],rBd[2]], color="blue", lw=lw) plot!([rAd[1]-a1d[1],rBd[1]],[rAd[2]-a1d[2],rBd[2]], color=color, lw=lw) plot!([rAd[1]-a2d[1],rBd[1]],[rAd[2]-a2d[2],rBd[2]], color=color, lw=lw) end θ=π/8 Nx=10 Ny=10 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny plotGraphene(θ,n,m,"blue") end end plot!(aspect_ratio=:equal) θ=2π/360 Nx=10 Ny=10 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny plotGraphene(0,n,m,"red") plotGraphene(θ,n,m,"blue") end end plot!(aspect_ratio=:equal) θ=2π/360 Nx=20 Ny=20 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny plotGraphene(0,n,m,"red") plotGraphene(θ,n,m,"blue") end end plot!(aspect_ratio=:equal) N = 4 M = 5 θ=acos((N^2+4N*M+M^2)/(2(N^2+N*M+M^2))) Nx=40 Ny=40 plot(size=(500,500), legend=false) for n in 1:Nx for m in 1:Ny plotGraphene(0,n,m,"red") plotGraphene(θ,n,m,"blue") end end plot!(aspect_ratio=:equal)