Hallo TeXWelt-Gemeinde!

Ich möchte gerne einen räumlichen Koordinatenursprung für eine orthogonale Basis darstellen. In tikz nutze ich dazu folgenden Code-Schnipsel:

Open in writeLaTeX
\documentclass{standalone}
\usepackage{tikz}
%%%%%%%%%%%%%%%%%%%%%
% let's go
%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{tikzpicture}
\draw [-latex,very thin] (0,-0) -- (0:0.7);
\draw [-latex,very thin] (0,0) -- (45:0.7);
\draw [-latex,very thin] (0,0) -- (90:0.7);
\draw[black,inner color=white, very thin] (0,0) circle (2pt);
\end{tikzpicture}
\end{document}

Um das ganze nun etwas räumlicher wirken zu lassen, möchte ich die Pfeilspitzenenden parallel zu jeweils einer benachbarten Pfeilrichtung ausrichten. Folgendes Beispiel (mit wysiwyg-software gezeichnet) verdeutlicht das angestrebte Ergebnis: alt text

Gibt es eine Möglichkeit, dies in tikz umzusetzen?

Viele Grüße

Dirk

gefragt 17 Jun '14, 14:57

Dirk's gravatar image

Dirk
265210
Akzeptiert: 66%

bearbeitet 31 Okt '14, 11:01

Clemens's gravatar image

Clemens
19.0k113060

Du kannst bei TikZ auch mit 3D-Koordinaten arbeiten, z.B. Punkt (1,2,3.4). Projektion der Pfeilspitzen in die Koordinatenebenen hast Du so aber noch nicht. Und so einen riesen Knubbel als Ursprung willst Du sicher nicht wirklich :()

(17 Jun '14, 15:07) cis

Fein fein, funktioniert sehr gut!

Open in writeLaTeX
\documentclass[10pt]{standalone}
\usepackage{tikz}
\usepackage{amsmath}

\tikzset{
  xpfeil/.pic={\path[pic actions,rounded corners=0.3pt] (\pgflinewidth,0,0)--(-1,-.4,0)--(-1,.4,0)--cycle;},
  ypfeil/.pic={\path[pic actions,rounded corners=0.3pt](0,\pgflinewidth,0)--(-0.4,-1,0)--(.4,-1,0)--cycle;},
  zpfeil/.pic={\path[pic actions,rounded corners=0.3pt] (0,0,\pgflinewidth)--(0,-0.4,-1)--(0,.4,-1)--cycle;},
}
%%%%%%%%%%%%%%%%%%%%%
% let's go
%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begin{tikzpicture}[
 black,
very thin,
  %>=latex, 
  x={(2cm,0cm)},y={(1cm,1cm)}, z={(0cm,2cm)},
  font=\footnotesize,
  pfeil/.style={fill=black,scale=0.15}
  ]

%3D-Koordinatensystem:
\draw (0,0,0) -- (0.5,0,0) node[sloped,below,]{$\boldsymbol e_1$} pic[pfeil]{xpfeil} ;
\draw (0,0,0) -- (0,.65,0) node[sloped,above left,yshift=-3pt,xshift=2pt]{$\boldsymbol e_2$}pic[pfeil]{ypfeil};
\draw (0,0,0) -- (0,0,.5) node[left,xshift=2pt]{$\boldsymbol e_3$}pic[pfeil]{zpfeil};
\draw[black,inner color=white, very thin] (0,0) circle (2.75pt);
\end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 20 Jun '14, 11:02

Dirk's gravatar image

Dirk
265210

+100 Sieht ja abgefahren aus! Danke fürs Posten der finalen Lösung.

(20 Jun '14, 11:10) Student

Prinzipielle Idee könnte sein, Du zeichnest Dir solche Pfeilspitzen selbst.

Das jetzt zu optimieren, überlasse ich Dir.

alt text

Open in writeLaTeX
\documentclass{standalone}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[color=blue, >=latex, x={(-0.5cm,-0.5cm)},y={(1cm,0cm)}, z={(0cm,1cm)}]
%Pfeilspitzen:
\filldraw[black!40, scale=0.5] (6,1,0) -- (6,2,0) -- (8,1,0) --cycle;

%3D-Koordinatensystem:
\draw[->] (0,0,0) -- (5,0,0) node[left]{$x$};
\draw[->] (0,0,0) -- (0,5,0) node[below]{$y$};
\draw[->] (0,0,0) -- (0,0,5) node[left]{$z$};

%Zahlen auf x-Achse
\foreach \x in {1,2,3,4}
\draw[shift={(\x,0,0)}] (2pt,0pt) -- (-2pt,0pt) node[left]{\footnotesize $\x$};

%Zahlen auf z-Achse
\foreach \z in {1,2,3,4}
\draw[shift={(0,0,\z)}] (2pt,0pt) -- (-2pt,0pt) node[left]
{\footnotesize $\z$};

%Zahlen auf y-Achse
\foreach \y in {1,2,3,4}
\draw[shift={(0,\y,0)}] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\y$};   
\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 17 Jun '14, 15:47

cis's gravatar image

cis
5.4k860169

bearbeitet 17 Jun '14, 15:49

@cis Warum skalierst du den Pfeil? Dabei werden auch die Koordinaten skaliert. Und müsste es in der 3.Koordinate nicht (8,1.5,0) heißen?

(17 Jun '14, 18:43) esdd

Ich würde dafür wie @cis ein xyz Koordinatensystem verwenden. Die Pfeilspitzen würde ich allerdings als pic (benötigt mindestens pgf/tikz Version 3.0) definieren.

alt text

Code:

Open in writeLaTeX
\documentclass[tikz,margin=5mm,convert=false]{standalone}

\tikzset{
  xpfeil/.pic={\path[pic actions] (\pgflinewidth,0,0)--(-1,-0.35,0)--(-1,.35,0)--cycle;},
  ypfeil/.pic={\path[pic actions](0,\pgflinewidth,0)--(-0.35,-1,0)--(.35,-1,0)--cycle;},
  zpfeil/.pic={\path[pic actions] (0,0,\pgflinewidth)--(0,-0.35,-1)--(0,.35,-1)--cycle;},
}

\begin{document}

\begin{tikzpicture}[
  blue!50!red,
  thick,
  >=latex, 
  x={(1cm,0cm)},y={(.5cm,.5cm)}, z={(0cm,1cm)},
  font=\footnotesize,
  pfeil/.style={fill=blue!50!red,scale=0.35}
  ]

%3D-Koordinatensystem:
\draw (0,0,0) -- (5,0,0) node[below]{$x$} pic[pfeil]{xpfeil};
\draw (0,0,0) -- (0,5,0) node[above left]{$y$} pic[pfeil]{ypfeil};
\draw (0,0,0) -- (0,0,5) node[left]{$z$} pic[pfeil]{zpfeil};

%Zahlen auf Achsen
\foreach \i in {1,2,3,4}{
  \draw[shift={(\i,0,0)}] (0pt,2pt) -- (0pt,-2pt) node[below]{$\i$};
  \draw[shift={(0,\i,0)}] (2pt,0pt) -- (-2pt,0pt) node[left]{$\i$};
  \draw[shift={(0,0,\i)}] (2pt,0pt) -- (-2pt,0pt) node[left]{$\i$};
}

\end{tikzpicture}
\end{document}
Permanenter link

beantwortet 17 Jun '14, 19:46

esdd's gravatar image

esdd
14.2k53251

bearbeitet 18 Jun '14, 08:25

Welche tikz-Version benötige ich um den Lösungsvorschlag von esdd prozessieren zu können? Ich bekomme folgende Fehlermeldung:

Package pgfkeys Error: I do not know the key '/tikz/xpfeil/.pic' and I am going to ignore it. Perhaps you misspelled it.

Gruß Dirk

(18 Jun '14, 08:15) Dirk
1

Du brauchst Version 3.0.0 Das ist die bei CTAN, MiKTeX und TeX Live derzeit aktuelle.

(18 Jun '14, 08:24) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×27
×6

Frage gestellt: 17 Jun '14, 14:57

Frage wurde angeschaut: 4,994 Mal

Zuletzt aktualisiert: 31 Okt '14, 11:01