그림에 화살표를 추가하세요

그림에 화살표를 추가하세요

tikz를 사용하여 다음 그림을 그리고 싶습니다.여기에 이미지 설명을 입력하세요

. 그런 화살표를 추가하는 좋은 방법이 있습니까? 시작점에서 끝점까지 원을 그리는 방법은 무엇입니까?

답변1

화살표 끝을 중간에 배치하는 방법에 대한 정보는 이 사이트의 여러 게시물에서 찾을 수 있습니다. 그러나 일반적으로 곡률로 인해 여기에 필요한 화살표의 미세한 위치 지정을 놓치게 됩니다. 아래 코드의 관련 부분은 다음과 같습니다.

mark=at position 0.5 with {\arrow[xshift=2pt]{Latex[length=4pt]}}

다음 요소로. 0.5화살표 끝의 위치를 ​​지정하며 0(경로 시작)과 1(경로 끝) 사이에서 달라질 수 있습니다. Latex화살표 유형을 지정합니다. 라이브러리에서 제공하는 옵션에 대해서는 tikz 매뉴얼을 참조하세요 arrows.meta. [length=4pt]길이와 같은 화살표 유형의 세부 사항을 지정합니다. 아래에 사용되는 다른 옵션은 open(윤곽선 화살표를 얻기 위해) 및 fill=white(화살표 내부가 그 아래 선을 덮도록 만들기 위해)입니다. [xshift=2pt]화살표 끝의 위치 지정에 관한 세부 사항을 지정합니다. 이 옵션이 없으면 화살표는 끝 부분에 배치되어 구부러진 선에서 잘못 배치된 것처럼 보입니다.

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,arrows.meta}
\tikzset
  {midarrow/.style={decoration={markings,mark=at position 0.5 with
     {\arrow[xshift=2pt]{Latex[length=4pt,#1]}}},postaction={decorate}}
  }
\begin{document}
\begin{tikzpicture}
  \draw[midarrow] (0,0) -- (1,0);
  \draw[midarrow={open,fill=white}] (0,0) arc(-90:180:10pt);
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요


몇 가지 아이디어를 재활용다른 게시물에서는 호와 선의 "언어"를 정의하여 그래프를 그릴 수 있습니다.

여기에 이미지 설명을 입력하세요

% arcs and lines
\documentclass{article}
\usepackage[margin=1.5cm]{geometry}
\pagestyle{empty}

\usepackage{tikz}
\usetikzlibrary{decorations.markings,arrows.meta}

\newcommand\ALloop[1]%
  {\ifx\relax#1%
   \else
     \ifcsname AL:#1\endcsname
       \csname AL:#1\endcsname
     \else
       \GenericError{(AL)}{AL Error: operator #1 undefined}{}{}%
     \fi
   \expandafter\ALloop
   \fi
  }

\newcommand\AL[1]%
  {\begin{tikzpicture}[thick,every node/.style={blob}]
   \coordinate(X) at (0,0);
   \ALloop#1\relax
   \end{tikzpicture}
  }

\def\ALs{12}% small radius
\pgfmathsetmacro\ALm{1.5*\ALs}% medium radius
\pgfmathsetmacro\ALl{2.25*\ALs}% large radius
\pgfmathsetmacro\ALh{3*\ALs}% huge radius
\pgfmathsetmacro\ALt{sqrt(3)*\ALh}% side of triangle
\pgfmathsetmacro\ALa{0.75*\ALs}% length of arrow
\pgfmathsetmacro\ALn{0.4*\ALs}% size of node

\tikzset
  {midarrow/.style={decoration={markings,mark=at position 0.5 with
     {\arrow[xshift=0.5*\ALa]{Latex[length=\ALa pt,#1]}}},postaction={decorate}},
   full/.style={midarrow},
   open/.style={midarrow={open,fill=white}},
   blob/.style={circle,draw,fill,minimum size=\ALn pt,inner sep=0pt,outer sep=0pt}
  }

\newcommand\arrowtype{full}
% \ARC{start angle}{delta angle clockwise}{radius}
\newcommand\ARC [3]{\draw[\arrowtype] (X) arc(#1:#1-#2:#3) node{} coordinate (X);}
% \LINE{angle}{length}
\newcommand\LINE[2]{\draw[\arrowtype] (X) -- +(#1:#2) coordinate (X);}

\newcommand\ALdef[1]{\expandafter\def\csname AL:#1\endcsname}
\ALdef{a}{\ARC{ 30}{360}{\ALs pt}}
\ALdef{b}{\ARC{150}{360}{\ALs pt}}
\ALdef{c}{\ARC{270}{360}{\ALs pt}}
\ALdef{d}{\ARC{  0}{360}{\ALm pt}}
\ALdef{e}{\ARC{180}{360}{\ALm pt}}
\ALdef{f}{\ARC{  0}{180}{\ALl pt}}
\ALdef{g}{\ARC{180}{180}{\ALl pt}}
\ALdef{h}{\ARC{ 30}{120}{\ALh pt}}
\ALdef{i}{\ARC{150}{120}{\ALh pt}}
\ALdef{j}{\ARC{270}{120}{\ALh pt}}
\ALdef{k}{\ARC{210}{-120}{\ALh pt}}
\ALdef{0}{\LINE{  0}{\ALt pt}}
\ALdef{1}{\LINE{ 60}{\ALt pt}}
\ALdef{2}{\LINE{120}{\ALt pt}}
\ALdef{3}{\LINE{180}{\ALt pt}}
\ALdef{4}{\LINE{240}{\ALt pt}}
\ALdef{5}{\LINE{300}{\ALt pt}}
\ALdef{F}{\def\arrowtype{full}}
\ALdef{O}{\def\arrowtype{open}}

\begin{document}
\renewcommand\arraystretch{5}
\section*{The operators}

\begin{tabular}[t]{ll}
\verb"\AL{a}" & \AL{a}\\
\verb"\AL{b}" & \AL{b}\\
\verb"\AL{c}" & \AL{c}\\
\verb"\AL{d}" & \AL{d}\\
\verb"\AL{e}" & \AL{e}\\
\verb"\AL{f}" & \AL{f}\\
\verb"\AL{g}" & \AL{g}\\
\verb"\AL{h}" & \AL{h}\\
\verb"\AL{i}" & \AL{i}\\
\verb"\AL{j}" & \AL{j}\\
\verb"\AL{k}" & \AL{k}
\end{tabular}
\quad
\begin{tabular}[t]{ll}
\verb"\AL{0}" & \AL{0}\\
\verb"\AL{1}" & \AL{1}\\
\verb"\AL{2}" & \AL{2}\\
\verb"\AL{3}" & \AL{3}\\
\verb"\AL{4}" & \AL{4}\\
\verb"\AL{5}" & \AL{5}\\
\verb"\AL{F}" & switch to full arrows\\
\verb"\AL{O}" & switch to open arrows
\end{tabular}

\newpage
\section*{Examples}

\begin{tabular}{ll}
\verb"\AL{OdFgOgFeOfFf}" &
\AL{OdFgOgFeOfFf} \\
\verb"\AL{OjihF204}" &
\AL{OjihF204} \\
\verb"\AL{OjihF135}" &
\AL{OjihF135} \\
\verb"\AL{FjObFiOaFhOc}" &
\AL{FjObFiOaFhOc} \\
\verb"\AL{OjFbOiFaOhFc}" &
\AL{OjFbOiFaOhFc} \\
\verb"\AL{OjiF3kOhFc}" &
\AL{OjiF3kOhFc} \\
\verb"\AL{FjiO3kFhOc}" &
\AL{FjiO3kFhOc}
\end{tabular}
\end{document}

관련 정보