
요소를 회전하여 얻고 싶은 그림이 있습니다. 나는 둘 중 하나를 얻을 수 있습니다
(원천:funkyimg.com)
다음 코드로 :
\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}
또는 :
(원천:funkyimg.com)
내 노드에 회전 명령을 추가하면 다음과 같습니다.
\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}
두 번째 예에서처럼 노드 위치가 회전되지만 그 안에 있는 텍스트는 첫 번째 예에서와 같이 여전히 수평인 두 가지를 혼합하고 싶습니다. 그렇게 할 수 있는 방법이 있나요?
내가 원하는 것(간단한 설정에서), 원하는 결과는 빨간색으로 표시됩니다.
(원천:funkyimg.com)
답변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}