DMUG-Archiv 2009

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Orthographische Projektion eines 3DGraphics durch Millers'sche Indizen.

Hallo Leonardo,

hier ist ein drawIt[] ohne Performanceprobleme; das wird dadurch erreicht, dass die Durchsichtigkeits- und Glanzgimmicks und auch die Polygone aus der Projektion entfernt werden:

(* drawIt *)
drawIt[lat_Integer, mI_List?VectorQ, mode_Integer] :=
 Module[{latD,
   pom = N[IdentityMatrix[3] -
      Outer[Times, Normalize[mI], Normalize[mI]]]},
  If[ mI[[1]] == 0 && mI[[2]] == 0 && mI[[3]] == 0,
   CreateDialog["Miller Indices all zero! Bye."];
   Return[$Failed]
   ];
  Switch[lat,
   0, latD = LatticeData["SimpleCubic", "Image"][[1, All]],
   1, latD = LatticeData["FaceCenteredCubic", "Image"][[1, All]],
   2, latD = LatticeData["BodyCenteredCubic", "Image"][[1, All]],
   _, CreateDialog[
    "Lattice " <> ToString[lat] <> " not implemented! Bye."]
   ];
  Switch[mode,
   0, Show[
    Graphics3D[{latD, {Opacity[0.66], millerPlane[mI]}},
     Axes -> True, AxesLabel -> {"X", "Y", "Z"}]],
   1,
   Show[Graphics3D[
     GeometricTransformation[
      Fold[DeleteCases[#1, #2, Infinity] &,
       latD, {_Specularity, _Opacity, _Polygon, _GrayLevel}], pom],
     Axes -> True, AxesLabel -> {"X", "Y", "Z"}]],
   _, Text["Mode " <> ToString[mode] <> " not implemented!"]
   ]
  ]

Offensichtlich hat Mma (zu Recht) Probleme mit der Durchsicht durch ein Polygon auf ein anderes, wenn beide nicht zueinander bis auf allenfalls eine gemeinsame Kante disjunkt sind.

Schönen Sonntag
Udo.

<<attachment: agudoProjection.nb>>

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html