tex:dreid

Einfache 3D-Koordinatendarstellung in LaTex und Lyx

Mit Hilfe des Pakets TikZ-3DPlot können einfach 3D-Koordinatensysteme erstellt werden und zugleich einfache Zeichnungen umgesetzt werden. Ich verwende diese hauptsächlich, um Zeichnungen für die Koordinatengeometrie im Raum für die Oberstufe Mathemtik in Bayern zu erstellen.

Es ist sowohl der source-code in Lyx als auch das fertige Bild als Pdf sichtbar.

Source-Code

Das Beispiel zeigt natürlich nur einige Möglichkeiten, ist aber als copy & paste Vorlage leicht für alle Zeichnungen abzuändern.

Beliebige Geraden und Ebenen können aus dem Beispiel adaptiert werden, allerdings müssend die Randpunkte immer per Hand berechnet werden.

Einstellung der Sicht über die beiden verwendeten Winkel

\tdplotsetmaincoords{70}{125}

Mit Hilfe von scale kann die Gesamtgröße schnell angepasst werden.

\begin{tikzpicture}[tdplot_main_coords ,scale=0.6]

Es sind 3 Ebenenvorlagen definiert, welche nach Belieben auskommentiert werden können. Analog können auch beliebige Ebenen erstellt werden.

%Ebenen

%\filldraw[opacity=0.15] (0,0,0) – (4,0,0) – (4,0,4) – (0,0,4) – cycle; %x2x3-Ebene

%\filldraw[opacity=0.15] (0,9,9) – (0,-9,9) – (0,-9,-9) – (0,9,-9) – cycle; %x1x3-Ebene

%\filldraw[opacity=0.15] (9,0,9) – (-9,0,9) – (-9,0,-9) – (9,0,-9) – cycle; %x2x1-Ebene

Analoges gilt für die Achsen, Achsenbeschriftung und das Gitter

%Achsen

\draw[→,thick,opacity=0.6] (0,0,0) – (13,0,0) node[above] {$x_1$};

\draw[→,thick,opacity=0.6] (0,0,0) – (0,13,0) node[above] {$x_2$};

\draw[→,thick,opacity=0.6] (0,0,0) – (0,0,9) node[above] {$x_3$};

Bei der Achsenbeschriftung gibt es auch einen Automodus, so dass anahand von den ersten beiden Zahlen 0,2,…,8 automatisch bis zur Schlusszahl ergänzt wird, also 0,2,4,6,8 (siehe z-Koordinate)

%Achsenbeschriftung

\foreach \x in {2,…,12} \draw[black,thick] (\x,-0.1,0) – (\x,0.1,0) node[above] {\scriptsize\x}; %xAchse

\foreach \y in {2,…,12} \draw[black,thick] (-0.2,\y,0) – (0.2,\y,0) node[above] {\scriptsize\y}; %yAchse

\foreach \z in {0,2,…,8} \draw[black,thick] (0,-0.1,\z) – (0,0.1,\z) node[left] {\scriptsize\z}; %zAchse

%Grid

\foreach \x in {0,2,…,12} \draw[gray,dashed] (\x,0,0) – (\x,12,0); %grid x1-Achse

\foreach \y in {0,2,…,12} \draw[gray,dashed] (0,\y,0) – (12,\y,0); %grid x2-Achse

%\foreach \z in {-8,-7,…,8} \draw[gray,dashed] (0,-9,\z) – (0,9,\z); %grid x3-Achse

Nun beginnt die eigentliche Zeichung mit Eingabe der Koordinaten der benötigen Punkte

%Zeichnung

%\coordinate (O) at (0,0,0);

\coordinate (A) at (12,0,0);

\coordinate (B) at (12,12,0);

\coordinate (C) at (0,12,0);

\coordinate (D) at (0,0,0);

\coordinate (S) at (6,6,8);

\coordinate (Q) at (6,6,0);

\coordinate (R) at (6,9.84,2.88);

\coordinate (G) at (9,9,4);

\coordinate (L) at (3,9,4);

unbenutzte werden einfach auskommentiert mit %

%\coordinate (H) at (2,6,1);

%\coordinate (K) at (1,6,1);

%\coordinate (M) at (2,5,1.5);

%\coordinate (N) at (2,5,0);

%\coordinate (W) at (2,5.5,0.4);

Hier wird die Grundfläche rot mit leichter Transparenz eingefärbt und anschließend analog die anderen Flächen. Dabei kann immer auf die Punkte zurückgegriffen werden.

\filldraw[opacity=0.15,red] (A) – (B) – (C) – (D) – cycle;

\filldraw[opacity=0.15,yellow] (B) – (C) – (S) – cycle;

\filldraw[opacity=0.15,green] (G) – (L) – (S) – cycle;

Hier werden die Punkte eingezeichnet mit einem kleinen Kreis und der Beschriftung. Für die Position von node gibt es above, below, right und left. Weitere der Tikz-Anleitung entnehemen.

\filldraw[blue] (A) circle (2pt) node[below,black] (a) {A};

\filldraw[blue] (B) circle (2pt) node[right,black] (b) {B};

\filldraw[blue] (C) circle (2pt) node[below,black] © {C};

\filldraw[blue] (D) circle (2pt) node[below,black] (d) {D};

\filldraw[blue] (S) circle (2pt) node[above,black] (p) {S};

\filldraw[orange] (Q) circle (2pt) node[left,orange] (q) {Q};

\filldraw[orange] (R) circle (2pt) node[above,orange] ® {R};

\filldraw[green] (G) circle (2pt) node[above,black] (g) {};

\filldraw[green] (L) circle (2pt) node[above,black] (l) {};

%\filldraw[blue] (H) circle (2pt) node[above,black] (h) {H};

%\filldraw[blue] (K) circle (2pt) node[above,black] (k) {K};

%\filldraw[blue] (O) circle (2pt) node[below,black] (o) {O};

%\filldraw[red] (M) circle (2pt) node[above,red] (m) {M};

%\filldraw[orange] (S) circle (2pt) node[above,orange] (s) {S};

%\filldraw[green] (W) circle (2pt) node[right,green] (w) {W};

%\filldraw[red] (N) circle (2pt);

Linien werden einfach über die beiden Punkte, hier M und N gezeichnet, der Linienstil ist leicht anzupassen, z.B. Dicke thin, very thin, very thick, oder Farbe blue, red und der Linienstil –, .., –>, ←-, usw.

%\draw[thick,red] (M) – (N);

Mit cycle geht es zum Ausgangspunkt wieder zurück. Es sind also auch einfach mehrere Punkte zu verbinden.

%\draw[thick,green] (0,5.5,0.4) – (3,5.5,0.4) – (3,5.5,0) – (0,5.5,0) – cycle;

%\draw[thick,green] (0,5.5,0.4) – (0,6,0.4) – (3,6,0.4) – (3,5.5,0.4) – cycle;

\draw[thick] (A) – (B);

\draw[thick] (A) – (D);

\draw[thick] (A) – (S);

\draw[thick] (C) – (B);

\draw[thick] (C) – (S);

\draw[thick] (C) – (D);

\draw[thick] (S) – (D);

\draw[thick] (B) – (S);

\draw[thick,orange] (Q) – (R);

\end{tikzpicture}

  • tex/dreid.txt
  • Zuletzt geändert: 2013/06/06 13:48
  • von admin