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 lib 。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}

我切换到了独立课程,因为它更适合这种类型的问题。还删除了环境,figure因为它与这个问题无关。

相关内容