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, 20:57

Dirk's gravatar image

Dirk
2654610
Akzeptiert-Rate: 40%

bearbeitet 31 Okt '14, 16:01

cgnieder's gravatar image

cgnieder
22.1k253463

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, 21: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, 17:02

Dirk's gravatar image

Dirk
2654610
Akzeptiert-Rate: 40%

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

(20 Jun '14, 17: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, 21:47

cis's gravatar image

cis
9.5k95459491
Akzeptiert-Rate: 29%

bearbeitet 17 Jun '14, 21: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?

(18 Jun '14, 00: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 18 Jun '14, 01:46

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 18 Jun '14, 14: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, 14:15) Dirk
1

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

(18 Jun '14, 14:24) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×731
×35
×6

gestellte Frage: 17 Jun '14, 20:57

Frage wurde gesehen: 17,466 Mal

zuletzt geändert: 31 Okt '14, 16:01