Tikz에서 각도 라벨 이동

Tikz에서 각도 라벨 이동

저는 여러분의 도움으로 다음 그림을 자랑스럽게 제작했습니다. 하지만 좋지 않은 세부 사항이 있습니다: theta2 레이블을 이동해야 합니다. 한 줄에서 레이블을 이동하는 방법을 알고 있지만 이 경우에는 그렇지 않습니다. 어떻게 작동하나요?

영상

\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usetkzobj{all} % not necessary with the last versions
\usepackage{subcaption}

%\usetkzobj{all} only once
\usetikzlibrary{calc,patterns,angles,quotes}

\begin{document}

\begin{tikzpicture}[scale=1]
 \begin{scope}[thick,font=\scriptsize]
    \draw [->] (-.5,0) -- (5.5,0) node [above left]  {$\operatorname{Re} z$};
    \draw [->] (0,-.5) -- (0,4) node [below right] {$\operatorname{Im} z$};
  \end{scope}
  \coordinate (o) at (0,0);
  \coordinate (z1) at (4.511,1.642);
  \coordinate (z2) at (2.143,2.553);
  \coordinate (pr) at (1.368,3.759);
  \coordinate (x) at (1,0);
  \coordinate (y) at (0,1);
  \draw (o) -- node[above,shift={(.4cm,.1cm)}] {$r_1$} (z1) node [right] {$z_1$};
  \draw (o) -- node[above,yshift=.2cm] {$r_2$} (z2) node [right] {$z_2$};
  \draw (o) -- node[above,yshift=1cm] {$r_1{\cdot}r_2$} (pr) node [right] {$z_1\cdot z_2$};
  \draw pic[draw, "$\theta_1$", ->, angle eccentricity=1.2,angle radius = 1cm] {angle = x--o--z1}; 
  \draw pic[draw, "$\theta_2$", ->, angle eccentricity=1.2,angle radius = 1.5cm] {angle = x--o--z2}; 
  \draw pic[draw, "$\theta_1{+}\theta_2$", ->, angle eccentricity=1.2,angle radius = 2.5cm] {angle = x--o--pr}; 
\end{tikzpicture}

\end{document}

답변1

텍스트 그림 텍스트에는 옵션이 있습니다 text pic options. 여기에서는 z_1각도 측면에서 겹치지 않도록 텍스트를 왼쪽 위로 이동하기만 하면 됩니다 .

pic text options={shift={(-3pt,3pt)}}

나는 자유롭게 다른 각도로 색칠했는데, 내 소견으로는 그림을 더 쉽게 읽을 수 있다고 생각합니다.

스크린샷

\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{subcaption}

\usetikzlibrary{calc,patterns,angles,quotes}

\begin{document}

\begin{tikzpicture}[scale=1]
 \begin{scope}[thick,font=\scriptsize]
    \draw [->] (-.5,0) -- (5.5,0) node [above left]  {$\operatorname{Re} z$};
    \draw [->] (0,-.5) -- (0,4) node [below right] {$\operatorname{Im} z$};
  \end{scope}
  \coordinate (o) at (0,0);
  \coordinate (z1) at (4.511,1.642);
  \coordinate (z2) at (2.143,2.553);
  \coordinate (pr) at (1.368,3.759);
  \coordinate (x) at (1,0);
  \coordinate (y) at (0,1);
  \draw (o) -- node[above,shift={(.4cm,.1cm)}] {$r_1$} (z1) node [right] {$z_1$};
  \draw (o) -- node[above,yshift=.2cm] {$r_2$} (z2) node [right] {$z_2$};
  \draw (o) -- node[above,yshift=1cm] {$r_1{\cdot}r_2$} (pr) node [right] {$z_1\cdot z_2$};
  \draw pic[draw,red, "$\theta_1$", ->, angle eccentricity=1.2,angle radius = 1cm] {angle = x--o--z1}; 
  \draw pic[draw,blue, "$\theta_2$", ->, angle eccentricity=1.2,angle radius = 1.5cm,pic text options={shift={(-3pt,3pt)}}] {angle = x--o--z2}; 
  \draw pic[draw,violet, "$\theta_1{+}\theta_2$", ->, angle eccentricity=1.2,angle radius = 2.5cm] {angle = x--o--pr}; 
\end{tikzpicture}

\end{document}

답변2

이 경우 다음과 같이 인용된 텍스트 뒤에 옵션을 넣어 각도 라벨에 옵션을 추가할 수 있다고 생각합니다. \draw pic[draw, "$\theta_2$"{option1,option2,...}, ->, angle eccentricity=1.2,angle radius = 1.5cm] {angle = x--o--z2};

코드

\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usetkzobj{all}
\usepackage{subcaption}

\usetkzobj{all}
\usetikzlibrary{calc,patterns,angles,quotes}

\begin{document}

\begin{tikzpicture}[scale=1]
 \begin{scope}[thick,font=\scriptsize]
    \draw [->] (-.5,0) -- (5.5,0) node [above left]  {$\operatorname{Re} z$};
    \draw [->] (0,-.5) -- (0,4) node [below right] {$\operatorname{Im} z$};
  \end{scope}
  \coordinate (o) at (0,0);
  \coordinate (z1) at (4.511,1.642);
  \coordinate (z2) at (2.143,2.553);
  \coordinate (pr) at (1.368,3.759);
  \coordinate (x) at (1,0);
  \coordinate (y) at (0,1);
  \draw (o) -- node[above,shift={(.4cm,.1cm)}] {$r_1$} (z1) node [right] {$z_1$};
  \draw (o) -- node[above,yshift=.2cm] {$r_2$} (z2) node [right] {$z_2$};
  \draw (o) -- node[above,yshift=1cm] {$r_1{\cdot}r_2$} (pr) node [right] {$z_1\cdot z_2$};
  \draw pic[draw, "$\theta_1$", ->, angle eccentricity=1.2,angle radius = 1cm] {angle = x--o--z1}; 
  \draw pic[ draw,->,blue, "$\theta_2$"{shift=(80:0.35),inner sep=1pt, circle,draw},angle eccentricity=1.1,angle radius = 1.5cm] {angle = x--o--z2}; 
  \draw pic[draw, "$\theta_1{+}\theta_2$", ->, angle eccentricity=1.2,angle radius = 2.5cm] {angle = x--o--pr}; 
\end{tikzpicture}

\end{document}

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

답변3

라벨을 손으로 이동해 보겠습니다.

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

\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[scale=2,thick]
\draw[->] (-.5,0)--(2.5,0) node[below]{\rm{Re}$z$};
\draw[->] (0,-.5)--(0,3) node[left]{\rm{Im}$z$};
\def\aone{20} \def\atwo{45}
\def\rone{2}  \def\rtwo{1.6}
\draw 
(0,0)--(\aone:\rone) 
node[pos=.8,below]{$r_1$} node[right]{$z_1$} 
(0,0)--(\atwo:\rtwo) 
node[pos=.65,left]{$r_2$} node[above]{$z_2$}
(0,0)--(\aone+\atwo:\rone*\rtwo) 
node[pos=.65,left]{$r_1\cdot r_2$} node[right]{$z_1\cdot z_2$};
\draw[->,red] (0:.5) arc(0:\aone:.5) 
node[pos=.55,right]{$\theta_1$};
\draw[->,blue] (0:.8) arc(0:\atwo:.8) 
node[pos=.75,right]{$\theta_2$};
\draw[->,magenta] (0:1.2) arc(0:\aone+\atwo:1.2)
node[pos=.55,right]{$\theta_1+\theta_2$};
\end{tikzpicture}
\end{document}

답변4

사용tzplot:

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

\documentclass{standalone} 

\usepackage{amsmath}
\usepackage{tzplot}

\begin{document}

\begin{tikzpicture}
\tzhelplines(5,4)
\tzaxes(-.5,-.5)(5.5,4.5){$\operatorname{Re} z$}[al]{$\operatorname{Im} z$}[br]
\tzcoors(0,0)(o)(4.511,1.642)(z1)(2.143,2.553)(z2)(1.368,3.759)(pr)(1,0)(x)(0,1)(y);
\tzline(o){$r_1$}[a,pos=0.6](z1){$z_1$}[r]
\tzline(o)(z2){$z_2$}[r]
\tzline(o){$r1\!\cdot\!r2$}[near end,al=-3pt](pr){$z_1\!\cdot\!z_2$}[r]
\tzanglemark[->](x)(o)(z1){$\theta_1$}[pos=1.25](1cm)
\tzanglemark[->](x)(o)(z2){$\theta_2$}[pos=1.1,yshift=7pt,red](1.5cm) % label moved
\tzanglemark[->](x)(o)(pr){$\theta_1+\theta_2$}[pos=1.25](2.5cm)
\end{tikzpicture}

\end{document}

관련 정보