Adott egy ABABAB atomtömböt hatszögletű mintában, hogyan használhatom a Mathematica t létrehozáshoz hatszögletű (végtelen) résszel ezzel a tömbvel, így az egyes A atomokat csak B atomok veszik körül és fordítva.

Megjegyzések

  • Hola Jose , üdvözöljük a Mathematica.SE oldalon. Grafikus rácsra, szükségszerűen véges cselekményre vagy a rács elemző leírására gondolsz? Valószínűleg további részleteket tudna megadni arról, hogy mit szándékozik ezzel kezdeni, így könnyebb segítséget nyújtani Önnek.
  • egy véges rács, amelyet például egy 2 atomú hatszögletű minta ad, például ilyen 0df7ed2d69 “>

google.es/… , de helyette 2 atom van (grafén)

  • Kapcsolódó: 19165 , 14632 .
  • Szintén kapcsolódó: Wolfram bemutató
  • A szilárdtest-fizika bizonyos ismeretei megkönnyítik.
  • Válasz

    2D-ben

    unitCell[x_, y_] := { Red , Disk[{x, y}, 0.1] , Blue , Disk[{x, y + 2/3 Sin[120 Degree]}, 0.1] , Gray, , Line[{{x, y}, {x, y + 2/3 Sin[120 Degree]}}] , Line[{{x, y}, {x + Cos[30 Degree]/2, y - Sin[30 Degree]/2}}] , Line[{{x, y}, {x - Cos[30 Degree]/2, y - Sin[30 Degree]/2}}] } 

    Ez létrehozza az egységcellát

    Graphics[unitCell[0, 0], ImageSize -> 100] 

    Egységcella

    Rácsba helyezzük

    Graphics[ Block[ { unitVectA = {Cos[120 Degree], Sin[120 Degree]} ,unitVectB = {1, 0} }, Table[ unitCell @@ (unitVectA j + unitVectB k) , {j, 1, 12} , {k, Ceiling[j/2], 20 + Ceiling[j/2]} ] ], ImageSize -> 500 ] 

    2D Hex rács


    3D-ben

    unitCell3D[x_, y_, z_] := { Red , Sphere[{x, y, z}, 0.1] , Blue , Sphere[{x, y + 2/3 Sin[120 Degree], z}, 0.1] , Gray , Cylinder[{{x, y, z}, {x, y +2/3 Sin[120 Degree], z}}, 0.05] , Cylinder[{{x, y, z}, {x + Cos[30 Degree]/2, y - Sin[30 Degree]/2, z}}, 0.05] , Cylinder[{{x, y, z}, {x - Cos[30 Degree]/2, y - Sin[30 Degree]/2, z}}, 0.05] } Graphics3D[ Block[ {unitVectA = {Cos[120 Degree], Sin[120 Degree], 0}, unitVectB = {1, 0, 0} }, Table[unitCell3D @@ (unitVectA j + unitVectB k), {j, 20}, {k, 20}]] , PlotRange -> {{0, 10}, {0, 10}, {-1, 1}} ] 

    3D Hex rács

    Megjegyzések

    • ok köszönöm …: D
    • Remek válasz, tetszett a 2d és a 3d szempontból is!

    Válasz

    2D-ben,

    Manipulate[( basis = {{s, 0}, {s/2, s Sqrt[3]/2}}; points = Tuples[Range[0, max], 2].basis; Graphics[Point[points], Frame -> True, AspectRatio -> Automatic]) , {s, 0.1, 1} , {max, 2, 10} ] 

    Válasz

    Egy másik módszer a GeometricTransformation használata, amely gyorsabban jelenhet meg, de korlátozott a $IterationLimit.

    With[{base = Line[{ {{-(1/2), -(1/(2 Sqrt[3]))}, {0, 0}}, {{0, 0}, {0, 1/Sqrt[3]}}, {{0, 0}, {1/2, -(1/(2 Sqrt[3]))}} }] }, Graphics[{ GeometricTransformation[ base, Flatten@Array[ TranslationTransform[ {1/2, -(1/(2 Sqrt[3]))} + {#1 + If[OddQ[#2], 1/2, 0], #2 Sqrt[3]/2} ] &, {16, 16} ] ] }] ] 

    Hatszögletű rács kimenete

    Ez nem működik a $IterationLimit növelése nélkül, ha a {16, 16} szöveget {128, 128}.

    Válasz

    Kevés erőforrásfüggvény segíthet hatszögletű rácsok létrehozásában . Az alábbi kód a HextileBins példákból származik.

    HextileBins

    hexes2 = Keys[ ResourceFunction["HextileBins"][ Flatten[Table[{x, y}, {x, 0, 16}, {y, 0, 12}], 1], 2]]; Graphics[{EdgeForm[Blue], FaceForm[Opacity[0.1]], hexes2}] 

    írja ide a kép leírását

    lsBCoords = Union[Flatten[First /@ hexes2, 1]]; 
    Graphics[{EdgeForm[Blue], hexes2 /. Polygon[p_] :> Line[Append[p, First[p]]], Red, PointSize[0.02], Point[lsBCoords]}] 

    írja ide a kép leírását

    HexagonalGridGraph

    (Vegye figyelembe, hogy ezt a funkciót a Wolfram Research küldte be.)

    grHex = ResourceFunction["HexagonalGridGraph"][{16, 12}] 

    írja ide a kép leírását

    lsVCoords = GraphEmbedding[grHex]; lsVCoords[[1 ;; 12]] 
    (* {{0, 0}, {0, 2}, {Sqrt[3], -1}, {Sqrt[3], 3}, {2 Sqrt[3], 0}, {Sqrt[ 3], 5}, {2 Sqrt[3], 2}, {2 Sqrt[3], 6}, {3 Sqrt[3], -1}, {3 Sqrt[3], 3}, {2 Sqrt[3], 8}, {3 Sqrt[3], 5}} *) 
    grHexPolygons = Map[Polygon@(List @@@ #)[[All, 1]] &, FindCycle[grHex, {6, 6}, All]] /. v_Integer :> lsVCoords[[v]]; Graphics[{EdgeForm[Blue], FaceForm[Opacity[0.2]], grHexPolygons}] 

    írja ide a kép leírását

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük