
要素を回転させて得たい図形があります。
(ソース:ファンキー)
次のコードによって:
\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}