Команда пересечения TikZ со странным поведением

Команда пересечения TikZ со странным поведением

Я пытаюсь разместить некоторые узлы на пересечении окружности с некоторыми биссектрисами. Однако пересечения ведут себя не так, как я предполагал.

Текстнеправильныйдолжен быть помещен на пересечении круга и серой линии, но он каким-то образом оказался в, по-видимому, случайном месте:

Текущая ситуация

Более того, если закомментированные строки не прокомментированы, оба пересечения будут располагаться в одном и том же месте:

Все еще неправильно и странно

(Хотя синий текст находится именно там, где ему и положено быть.)

Может кто-нибудь объяснить, что я делаю не так? Я не понимаю, почему узел в обоих случаях находится не в том месте.

Заранее спасибо!

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{figure}
    \centering
        \begin{tikzpicture}
            \draw[thick,dashed, name path=circ] (2,2) circle (2cm);
            
            \begin{scope}[shift={(2,2)}]
                \filldraw (165:2) node[left=3.5pt] (c) {\large $c$} circle (3pt);
                \filldraw (225:2) node[below=3.5pt] (b) {\large $b$} circle (3pt);
                %\filldraw (135:2) node[above=3.5pt] (a) {\large $a$} circle (3pt);
            \end{scope}  
            
            %\path[shorten >=-0.5cm,-, name path= path1] let \p1=($ (a) !.5! (b) $) in (2,2) -- ($(\p1)+(5,0)$);
            %\draw[name intersections = {of =circ and path1}] (intersection-1) node[blue] (ab) {\Large right};
            \path[shorten <= -0.5cm,-, name path=path3] let \p1=($ (b) !.5! (c) $) in (\p1) edge[gray] (2,2);
            \draw[name intersections={of=circ and path3}] (intersection-1) node (bc) {wrong};
        \end{tikzpicture}
\end{figure}
\end{document}

решение1

Для начала убедитесь, что ваш MWE действительно компилируется, здесь \begin{document}и библиотека tikz calcотсутствуют.

Во-вторых, проблема здесь в том, что \path[shorten <= -0.5cm,-, name path=path3]часть shortenне добавляет длину пути (часть, которая может быть использована для вычислений), она добавляет только к отображаемой версии. Таким образом, сегмент линии, используемый для вычисления пересечения, полностью находится внутри круга, и вы получаете ошибку о том, что он не найден.

Кажется, это работает.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections,calc}
\begin{document}
\begin{tikzpicture}
  \draw[thick,dashed, name path=circ] (2,2) circle (2cm);
  
  \begin{scope}[shift={(2,2)}]
    \filldraw (165:2) node[left=3.5pt] (c) {\large $c$} circle (3pt);
    \filldraw (225:2) node[below=3.5pt] (b) {\large $b$} circle (3pt);
    % \filldraw (135:2) node[above=3.5pt] (a) {\large $a$} circle (3pt);
  \end{scope}  
  
  % \path[shorten >=-0.5cm,-, name path= path1] let \p1=($ (a) !.5! (b) $) in (2,2) -- ($(\p1)+(5,0)$);
  % \draw[name intersections = {of =circ and path1}] (intersection-1) node[blue] (ab) {\Large right};
  % \path[shorten <= -0.5cm,-, name path=path3] let \p1=($
  % (b) !.5! (c) $) in (\p1) edge[gray] (2,2);
  
  \coordinate (d) at ($(b) !.5! (c) $);
  \coordinate (o) at (2,2);
  \draw[name path=path3] (o) -- ($(o)!1.5!(d)$);
  \draw[name intersections={of=circ and path3,by=e}] (e) node (bc) {wrong};
\end{tikzpicture}
\end{document}

Я переключился на класс standallone, так как он больше подходит для этого типа вопроса. Также удалил figureenv, так как он не имеет отношения к этому вопросу.

Связанный контент