LatticeData[]

LatticeData[1]

LatticeData[2]

LatticeData[3]

LatticeData["SquareLattice","Image"]

LatticeData["BaseCenteredMonoclinic","Image"]

Groupe p2gg

S=14;

Fabrication du réseau

MaillePrimitive={EdgeForm[Thick],Red,Rectangle[{0,0},{1,2}],Rectangle[{1,1},{3,2}]};

Graphics[{MaillePrimitive,Inset[Style["Maille Primitive",S],{Right,Bottom},{Right,Bottom}]}]

a1={1,-1};a2={-2,-2};ah=a1-a2;

Graphics[{MaillePrimitive,Translate[MaillePrimitive,a1]}]

t1[kmax_]:=Table[Translate[MaillePrimitive,k a1],{k,1,kmax}];

Graphics[t1[4]]

t2[kmax_]:=Table[Translate[MaillePrimitive,k a2],{k,1,kmax}];

Graphics[t2[4]]

t[kmax1_,kmax2_,x1_,x2_,y1_,y2_]:=Module[{T,k1,k2},T=Table[0,{k1,1,1+2kmax1},{k2,1,1+2kmax2}];Do[T[[kmax1+1+k1,kmax2+1+k2]]=Translate[MaillePrimitive,k1 (x1 a1+x2 a2)+k2 (y1 a1+y2 a2)],{k1,-kmax1,kmax1},{k2,-kmax2,kmax2}];T];

Graphics[t[5,5,1,0,0,1]]

Gl1[x_,y_,var_]:=Line[{{x,y},{x,y}+var a1}];Gl2[x_,y_,var_]:=Line[{{x,y},{x,y}-var a2}];

Gl1[pos_,var_]:=Line[{pos,pos+var a1}];Gl2[pos_,var_]:=Line[{pos,pos-var a2}];

Origine={0,0};

p=.25;DessinOrigine={Blue,Line[{{-p,0},{p,0}}],Line[{{0,-p},{0,p}}]};DessinCentre={Green,Line[{{-p,0},{p,0}}],Line[{{0,-p},{0,p}}]};

Les glissements

On paramètre les matrices des deux réflexions vectorielles :

MGl1={{0,-1},{-1,0}};
MGl2={{0,1},{1,0}};

rem : MGl1.MGl2 = -Id

O est l'origine (arbitraire). Les réflexions affines par rapport à D de direction Δ engendrée par (OverVector[v]) ont pour forme:
x -> M x + 2(OverVector[OH])   
où H est la projection orthogonale de O sur D, 
et M est la matrice de la réflexion vectorielle d'axe Δ.

Toujours avec les mêmes notations, les glissements sont de la forme :
x -> M x + 2(OverVector[OH])   + λ (OverVector[v]).
Ici, λ (OverVector[v]) est une demi-période.

MGl1.MGl2

Glissement 1 suivant la première diagonale :

OA=-1/8 a2;Reflexion1=AffineTransform[{MGl1,2OA}]

Glissement1=AffineTransform[{MGl1,2OA+a1/2}]

Glissement1[{x,y}]

R1=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion1]},{Dashed,Gl1[Origine+OA- 2a1,4]},DessinOrigine,Arrow[Line[{Origine,a1}]],Arrow[Line[{Origine,a2}]],Inset[Style["Réflexion 1",S],{Right,Bottom},{Right,Bottom}]}];

G1=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion1]},{Opacity[1],GeometricTransformation[MaillePrimitive,Glissement1]},Arrow[Line[{Origine-a2/4+(a2-2 a1)/8,a1/2-a2/4+(a2-2 a1)/8}]],{Dashed,Gl1[Origine+OA- 2a1,4]},Inset[Style["Glissement 1",S],{Right,Bottom},{Right,Bottom}]}];

GraphicsRow[{R1,G1}]

Glissement 1 suivant la première diagonale, site b (i.e. droite passant par Ab):

OAb=OA-a2/2;

Reflexion1b=AffineTransform[{MGl1,2OAb}];Glissement1b=AffineTransform[{MGl1,2OAb+a1/2}];

R1b=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion1b]},{Blue,Dashed,Gl1[Origine+OAb- 3/2a1,2.5]},DessinOrigine,Arrow[Line[{Origine,a1}]],Arrow[Line[{Origine,a2}]],Inset[Style["Réflexion 1b",S],{Right,Bottom},{Right,Bottom}]}];

G1b=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion1b]},GeometricTransformation[MaillePrimitive,Glissement1b],Arrow[Line[{Origine+OAb-3a1/4,Origine+OAb-a1/4}]],{Blue,Dashed,Gl1[Origine+OAb-3/2a1,3]},Inset[Style["Glissement 1b",S],{4,-1},{Right,Bottom}]}];

GraphicsRow[{R1b,G1b}]

Glissement 2 suivant la deuxième diagonale :

OB=- a1/2;Reflexion2=AffineTransform[{MGl2,2OB}];

Glissement2=AffineTransform[{MGl2,2OB+a2/2}];

Glissement2[{x,y}]

R2=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion2]},{Dashed,Gl2[Origine+OB+a2/4,2]},DessinOrigine,Arrow[Line[{Origine,a1}]],Arrow[Line[{Origine,a2}]],Inset[Style["Réflexion 2",S],{Right,Bottom},{Right,Bottom}]}];

G2=Graphics[{{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion2]},MaillePrimitive,{Opacity[1],GeometricTransformation[MaillePrimitive,Glissement2]},Arrow[Line[{Origine+OB-3a2/4,Origine+OB-a2/4}]],{Dashed,Gl2[Origine-a1/2+a2/4,2]},Inset[Style["Glissement 2",S],{Right,Bottom},{Right,Bottom}]}];

GraphicsRow[{R2,G2}]

Glissement 2 suivant la deuxième diagonale, site b (i.e. droite passant par Bb) :

OBb=OB+a1/2;(* =0! *)

Reflexion2b=AffineTransform[{MGl2,2OBb}];Glissement2b=AffineTransform[{MGl2,2OBb+a2/2}];

R2b=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion2b]},{Blue,Dashed,Gl2[Origine+OBb+a2/4,2]},DessinOrigine,Arrow[Line[{Origine,a1}]],Arrow[Line[{Origine,a2}]],Inset[Style["Réflexion 2b",S],{4,-1},{Right,Bottom}]}];

G2b=Graphics[{MaillePrimitive,{Opacity[0.5],GeometricTransformation[MaillePrimitive,Reflexion2b]},GeometricTransformation[MaillePrimitive,Glissement2b],Arrow[Line[{Origine+OBb-a2/2,Origine+OBb}]],{Blue,Dashed,Gl2[Origine+OBb+3a2/4,2.5]},Inset[Style["Glissement 2b",S],{4,-1},{Right,Bottom}]}];

GraphicsRow[{R2b,G2b}]

Les rotations d’angle π

c=Origine-a1/4-3a2/8;

Graphics[{MaillePrimitive,Rotate[MaillePrimitive,π,-a1/4-3a2/8],Inset[Style["Rotation θ= π",S],{Right,Bottom},{Right,Bottom}],Translate[DessinCentre,c]}]

Graphics[{MaillePrimitive,Rotate[MaillePrimitive,π,c+a1/2-a2/2],Inset[Style["Rotation θ= π",S],{Right,Bottom},{Right,Bottom}],Translate[DessinCentre,c+a1/2-a2/2]}]

Graphics[{MaillePrimitive,Rotate[MaillePrimitive,π,c-a2/2],Inset[Style["Rotation θ= π",S],{Right,Bottom},{Right,Bottom}],Translate[DessinCentre,c-a2/2]}]

Graphics[{MaillePrimitive,Rotate[MaillePrimitive,π,c+a1/2],Inset[Style["Rotation θ= π",S],{Right,Bottom},{Right,Bottom}],Translate[DessinCentre,c+a1/2]}]

Récapitulatif

m1=5;d1=2.5;m2=3;d2=1;
ZoneC={Opacity[0.35],EdgeForm[Black],LightGray,Polygon[{c-a1/2-a2/2,c+a1/2-a2/2,c+a1/2+a2/2,c-a1/2+a2/2}]};Zone={Opacity[0],EdgeForm[Black],LightGray,Polygon[{c-a1/2-a2/2,c+a1/2-a2/2,c+a1/2+a2/2,c-a1/2+a2/2}]};
Graphics[{t[2,1,1,0,0,1],
{Dashed,{Blue,Gl1[Origine+OA-d1 a1-3a2/2,m1]},Gl1[Origine+OA-d1 a1-a2,m1],{Blue,Gl1[Origine+OA-d1 a1-a2/2,m1]},Gl1[Origine+OA-d1 a1,m1],{Blue,Gl1[Origine+OA-d1 a1+a2/2,m1]},Gl1[Origine+OA-d1 a1+a2,m1],
{Blue,Gl2[Origine+OB+d2 a2-3/2a1,m2]},Gl2[Origine+OB+d2 a2- a1,m2],{Blue,Gl2[Origine+OB+d2 a2-a1/2,m2]},Gl2[Origine+OB+d2 a2,m2],{Blue,Gl2[Origine+OB+d2 a2+a1/2,m2]},Gl2[Origine+OB+d2 a2+a1,m2],{Blue,Gl2[Origine+OB+d2 a2+3a1/2,m2]},Gl2[Origine+OB+d2 a2+2a1,m2]},
DessinOrigine,
Arrow[Line[{Origine,a1}]],Arrow[Line[{Origine,a2}]],
Translate[DessinCentre,c],
Translate[DessinCentre,c-a1/2+a2/2],Translate[DessinCentre,c-a1/2-a2/2],Translate[DessinCentre,c+a1/2+a2/2],Translate[DessinCentre,c+a1/2-a2/2],
Translate[DessinCentre,c-a1/2],Translate[DessinCentre,c+a1/2],Translate[DessinCentre,c-a2/2],Translate[DessinCentre,c+a2/2],
Translate[Zone,-2a1],Translate[Zone,-a1],ZoneC,Translate[Zone,a1],Translate[Zone,2a1],
Translate[Zone,-2a1-a2],Translate[Zone,-a1-a2],Translate[Zone,-a2],Translate[Zone,a1-a2],Translate[Zone,2a1-a2],
Translate[Zone,-2a1+a2],Translate[Zone,-a1+a2],Translate[Zone,a2],Translate[Zone,a1+a2],Translate[Zone,2a1+a2]}]