Tikz 交叉口,不延伸路径直到它们相交

Tikz 交叉口,不延伸路径直到它们相交

下面的 MWE 绘制了一个特定的等腰三角形:

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{intersections, positioning}

\begin{document}%

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);    
\path[name path=AC] (A)--++(80:6cm);
\path[name path=BC] (B)--++(100:6cm);
\path[name intersections={of=AC and BC, by=C}];
\draw (A)--(B)--(C)--cycle;
\end{tikzpicture}

\end{document}

在此处输入图片描述

但是,如果命名路径延伸得不够长,例如,\path[name path=AC] (A)--++(80:1cm);我会收到错误。虽然这不是问题(只需输入任意大数字),但有没有办法(可能是符号,或其他)告诉 Tikz 路径相交(即使定义的路径不够长)?

答案1

有一种语法仍然适用于两条线的交点。自 TikZ 版本 3 以来,它不再被记录,但你可以在旧手册版本 1 和 2。

其有趣之处在于,即使线段不是相交,只要承载它们的线不平行就足够了。

确实如此不需要任何要使用的 TikZ 库。

截屏

\documentclass[tikz, border=1cm]{standalone}

\begin{document}%

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (2,0);    
\path(A)--++(80:6cm)coordinate(u);
\path(B)--++(100:6cm)coordinate(v);
%\path[name intersections={of=AC and BC, by=C}];
\draw (A)--(B)--(intersection of A--u and B--v)--cycle;
\end{tikzpicture}

\end{document}

答案2

是的,至少当相交曲线是直线时可以。这个想法是使用路口在一个让...进动作。我在 AndréC 的回答中看到了这种结构通过 3 个非共线点画圆

我认为通过一个点和每个矢量给出两条线---A第一次和第二个。我们需要他们的会面地点C

\documentclass[tikz, border=1cm]{standalone}
\usetikzlibrary{calc, intersections}

\begin{document}

\begin{tikzpicture}[every node/.style={scale=.8}]
  % points and directions
  \path
  (0, 0) coordinate (A) (80:1) coordinate (v)
  (2, 0) coordinate (B) (100:1) coordinate (w);

  % intersection point
  \path let
  \p1 = (A),
  \p2 = ($(A)+(v)$),
  \p3 = (B),
  \p4 = ($(B)+(w)$),
  \p5 = (intersection of \p1--\p2 and \p3--\p4)
  in
  (\p5) coordinate (C);
  
  \draw (A) -- (B) -- (C) -- cycle;

  \draw[blue, very thick, ->] (A) -- +(v) node[above left] {$v$};
  \draw[blue, very thick, ->] (B) -- +(w) node[above right] {$w$};
  
  \foreach \P/\pos in {A/below left, B/below right, C/above left}{%
    \draw[fill=white] (\P) circle (1.2pt) node[\pos] {$\P$};
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容