Tikz: más formas de marcar ángulos en estilos Tikz

Tikz: más formas de marcar ángulos en estilos Tikz

Continuando con esta hermosa respuesta,¿Es posible tener las siguientes marcas de ángulos adicionales? ((1) El ángulo con el punto en el centro; (2) los ángulos violetas con adornos, si es posible, con la posibilidad de personalizarlo (números de segmento, longitud, distancia, color, etc.); (3) ángulos con múltiples arcos.

ingrese la descripción de la imagen aquí

Respuesta1

He aquí una propuesta. Como amablemente explicó Kpym en los comentarios, hay dos caminos para la construcción del ángulo: el arco y el relleno. Hay que evitar que TikZ por dibujar la decoración dos veces. Esta respuesta viene con un estilo insert angle lines, que toma dos argumentos, el número de líneas y el vértice al que deben conectarse. Un ejemplo es

\pic [draw=red,angle radius=1cm,insert angle lines={3}{A}] 
    {angle = C--A--B};

Hay un segundo estilo para el punto.

\pic [draw=blue,angle radius=1cm,insert angle dot={B}] {angle = A--B--C};

Si desea cambiar el estilo de estas marcas, ajústelo every angle mark. Aquí está el MWE.

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{decorations.markings,angles}
\newcounter{trstep}
\begin{document}
\tikzset{insert |/.style={decoration={markings,
  mark=at position #1 with {%
   \draw[line cap=round,mark segment] 
    (0,-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (0,\pgfkeysvalueof{/tikz/mark
    segment length}/2);}
  }},
  | mark/.style={postaction=decorate,insert |=#1},
  insert ||/.style={decoration={markings,
  mark=at position #1 with {%
   \draw[line cap=round,mark segment] 
    (-\pgfkeysvalueof{/tikz/mark segment distance}/2,-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (-\pgfkeysvalueof{/tikz/mark segment distance}/2,\pgfkeysvalueof{/tikz/mark
    segment length}/2);
   \draw[line cap=round,mark segment] (\pgfkeysvalueof{/tikz/mark segment distance}/2,-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (\pgfkeysvalueof{/tikz/mark segment distance}/2,\pgfkeysvalueof{/tikz/mark
    segment length}/2);}
  }},
  || mark/.style={postaction=decorate,insert ||=#1},
 insert |||/.style={decoration={markings,
  mark=at position #1 with {%
   \draw[line cap=round,mark segment] 
    (-\pgfkeysvalueof{/tikz/mark segment distance},-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (-\pgfkeysvalueof{/tikz/mark segment distance},\pgfkeysvalueof{/tikz/mark
    segment length}/2);
   \draw[line cap=round,mark segment] 
    (0,-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (0,\pgfkeysvalueof{/tikz/mark
    segment length}/2); 
   \draw[line cap=round,mark segment] 
   (\pgfkeysvalueof{/tikz/mark segment distance},-\pgfkeysvalueof{/tikz/mark
    segment length}/2) -- (\pgfkeysvalueof{/tikz/mark segment distance},\pgfkeysvalueof{/tikz/mark
    segment length}/2);}
  }},
  ||| mark/.style={postaction=decorate,insert |||=#1},
 mark segment/.style={thick},
 mark segment options/.code=\tikzset{mark segment/.style={#1}},
 mark segment distance/.initial=2pt,
 mark segment length/.initial=4pt,
 angle deco |/.style={insert |=0.5,
      pic actions/.append code=\tikzset{postaction=decorate}},
 angle deco ||/.style={insert ||=0.5,
      pic actions/.append code=\tikzset{postaction=decorate}},
 angle deco |||/.style={insert |||=0.5,
      pic actions/.append code=\tikzset{postaction=decorate}},
 insert angle lines/.style n args={2}{
 /utils/exec={\pgfmathsetmacro{\mystep}{1/(#1+1)}
 \setcounter{trstep}{0}},
 decoration={markings,mark=between positions {\mystep} and {1-\mystep} step {\mystep}
 with {\stepcounter{trstep}
 \ifnum\number\value{trstep}>#1
 \else
  \draw[shorten <=-1pt,every angle mark] (0,0)-- (#2);
  \fi}},
 pic actions/.append code=\tikzset{postaction={decorate}}
 },
 every angle mark/.style={line cap=round,semithick},
 double arc/.style={double,double distance=2pt},
 triple arc/.style={double distance=4pt,
    pic actions/.append code=\tikzset{postaction={draw}}},
 insert angle dot/.style={
 /utils/exec={\setcounter{trstep}{0}},
 decoration={markings,mark=at position 0.5  with {\stepcounter{trstep}
 \ifnum\number\value{trstep}=1
  \fill[\pgfkeysvalueof{/tikz/angle dot color}] (#1) -- (0,0)  coordinate[pos=\pgfkeysvalueof{/tikz/angle dot pos}] (aux) (aux) 
  circle[radius=\pgfkeysvalueof{/tikz/angle dot radius}];
  \fi}},
 pic actions/.append code=\tikzset{postaction={decorate}}},
 angle dot radius/.initial=1pt,
 angle dot pos/.initial=0.6,
 angle dot color/.initial=black}

\begin{tikzpicture}[]
    \coordinate (A) at (0,0);
    \coordinate (B) at (2,4);
    \coordinate (C) at (4,0);

    \draw(A)--(B)--(C)--cycle;
    \path[| mark=0.5] (A) -- (B);
    \path[mark segment options={thick,yscale=2},|| mark=0.5] (B) -- (C);
    \path[mark segment options={blue,line width=1pt,scale=2},||| mark=0.5] (C) -- (A);
    \pic [draw=blue,angle radius=1cm,insert angle dot={B}] 
    {angle = A--B--C};
    \pic [draw=red,angle radius=1cm,insert angle lines={3}{A}] 
    {angle = C--A--B};
    \pic [draw=purple,angle radius=1cm,triple arc,
    insert angle lines={3}{C}] 
    {angle = B--C--A};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

información relacionada