
Ich habe eine Figur, die ich durch Drehen eines Elements erhalten möchte. Ich kann entweder
(Quelle:www.funkyimg.com )
durch den folgenden Code:
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{esvect}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm) node{HP};
\foreach \angle in {0,30,60,90,120,150,180,210,240,270,300,330} {\begin{scope}[rotate=\angle]
\draw[->] (0,1) .. controls +(0,1) and +(-1,-0.5) .. (1.5,3);
\draw[->, Aquamarine!50!black] (0,1)--(0,2.5)node[above,Aquamarine!50!black]{$\vv{v}$};
\draw[->, Orchid!50!black] (0,1.5)--(0.6,1.5)node[pos=0.5, above,Orchid!50!black]{$\vv{f_{ic}}$};
\end{scope} }
\end{tikzpicture}
\end{document}
Oder das :
(Quelle:www.funkyimg.com )
durch Hinzufügen des Befehls „Rotate“ in meinem Knoten:
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{esvect}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm) node{HP};
\foreach \angle in {0,30,60,90,120,150,180,210,240,270,300,330} {\begin{scope}[rotate=\angle]
\draw[->] (0,1) .. controls +(0,1) and +(-1,-0.5) .. (1.5,3);
\draw[->, Aquamarine!50!black] (0,1)--(0,2.5)node[above,Aquamarine!50!black,rotate=\angle]{$\vv{v}$};
\draw[->, Orchid!50!black] (0,1.5)--(0.6,1.5)node[pos=0.5, above,Orchid!50!black, rotate=\angle]{$\vv{f_{ic}}$};
\end{scope} }
\end{tikzpicture}
\end{document}
Ich hätte gern eine Mischung aus beidem, wobei die Knotenposition wie in meinem zweiten Beispiel gedreht ist, der Text darin aber immer noch horizontal ist wie in meinem ersten. Gibt es eine Möglichkeit, das zu tun?
Was ich möchte (in einer vereinfachten Einstellung), das gewünschte Ergebnis wäre in Rot:
(Quelle:www.funkyimg.com )
Antwort1
BEARBEITEN
Ich denke, dass Sie mit Polarkoordinaten besser dran sind. Ich bin schlecht im Umgang mit Steuerelementen, daher sind die Kurven nicht das, was Sie wollen, aber dies zeigt die Idee:
Hier ist der Code:
\documentclass[a4paper]{article}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{amsmath}
\usepackage{esvect}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm) node{HP};
\foreach \angle in {0,30,...,330} {
\draw[->] (\angle:1) .. controls (\angle:2.2) and (\angle-20:2.7) .. (\angle-30:3);
\draw[->, Aquamarine!50!black] (\angle:1)--(\angle:2.5);
\node at (\angle:2.65) [Aquamarine!50!black]{$\vv{v}$};
\draw[->, Orchid!50!black] (\angle:1.5)--(\angle-20:1.5);
\node at (\angle-22:1.8)[Orchid!50!black]{$\scriptstyle\vv{f_{ic}}$};
}
\end{tikzpicture}
\end{document}
Insbesondere werden die Beschriftungen mit Polarkoordinaten an den „richtigen“ Stellen platziert. Beachten Sie, dass dies tikz
wirklich clever ist und Ihnen ermöglicht, beispielsweise (\angle-20:1)
den Winkel in den Polarkoordinaten zu ändern. Die andere kleine Verbesserung Ihres Codes besteht darin, dass die \foreach
Schleife alle Winkel interpolieren kann, {0,30,...,330}
sodass Sie sie nicht alle eintippen müssen.
--Ursprünglicher Beitrag--
Es scheint zu funktionieren, wenn man es rotate
in den Befehl einfügt \draw
, anstatt indei :\node
Hier ist Ihr geändertes MWE:
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{esvect}
\usepackage[usenames,svgnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (0,0) circle (1cm) node{HP};
\foreach \angle in {0,30,60,90,120,150,180,210,240,270,300,330} {\begin{scope}[rotate=\angle]
\draw[->] (0,1) .. controls +(0,1) and +(-1,-0.5) .. (1.5,3);
\draw[->,rotate=\angle, Aquamarine!50!black] (0,1)--(0,2.5)node[above,Aquamarine!50!black]{$\vv{v}$};
\draw[->, rotate=\angle, Orchid!50!black] (0,1.5)--(0.6,1.5)node[pos=0.5, above,Orchid!50!black]{$\vv{f_{ic}}$};
\end{scope} }
\end{tikzpicture}
\end{document}