ノードの位置を回転させるが、その中のテキストは回転させない方法

ノードの位置を回転させるが、その中のテキストは回転させない方法

要素を回転させて得たい図形があります。

ここに画像の説明を入力してください
(ソース:ファンキー

次のコードによって:

\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}

またはその :

ここに画像の説明を入力してください
(ソース:ファンキー

ノードに回転コマンドを追加します:

\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}

2 つの例を組み合わせて、ノードの位置を 2 番目の例のように回転させ、その中のテキストを最初の例のように水平のままにしたいと思っています。それを実現する方法はありますか?

私が望むのは(簡略化された設定で)、望ましい結果は赤で表示されます:

ここに画像の説明を入力してください
(ソース:ファンキー

答え1

編集

極座標を使用する方が良いと思います。私はコントロールの使い方が下手なので、曲線はあなたが望むものではありませんが、これはその考え方を示しています。

ここに画像の説明を入力してください

コードは次のとおりです:

\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}

特に、ラベルは極座標を使用して「正しい」場所に配置されています。これは非常に巧妙で、極座標の角度を変更するtikzなどの操作を実行できることに注目してください。コードのその他の小さな改善点は、ループですべての角度を補間できるため、すべてを入力する必要がないことです。(\angle-20:1)\foreach{0,30,...,330}

--元の投稿--

indei ではなくコマンドrotate内に配置するとうまくいくようです:\draw\node

ここに画像の説明を入力してください

変更後の 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}

関連情報