两条直线的交点?

两条直线的交点?

我特别感兴趣的是线 AB 和 CD 相交,但位于线段 AB、CD 之外(至少一条线段之外)的情况,并获取交点 I 以进行进一步的工作。类似的问题仅处理线段相交的情况。

答案1

  1. 声明两个path相交的。
  2. 计算并绘制交点。
  3. 绘制(或不绘制)一些原始路径的片段。

就这样。

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{intersections, calc}

\begin{document}
\begin{tikzpicture}
\path[name path=a] (0,0) coordinate (a1) -- (2,4) coordinate (a2);
\path[name path=b] (0,4) coordinate (b1) -- (5,2) coordinate (b2);
\fill[red,name intersections={of=a and b}]
    (intersection-1) circle (2pt);

\draw (a1)--($(a1)!.5!(a2)$);
\draw (b2)--($(b2)!.5!(b1)$);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

还有另一种方法可以找到两条相交线的交点,这种方法在手册中不再有记录,3.0.1a但仍然有效。它位于手册 1.18 的第 87 页,您可以在这里找到它(直到什么时候?): tikz pgf 手册 1.18

它包括求解具有 2 个未知数(定义 2 条线的点)的 2 个方程组。与3.01aignasi 给出的解决方案手册中给出的版本不同,路径在图形上相交不需要找到它们的交点。第二个优点是,它不需要加载任何库即可工作。

你会注意到这些点或它们的坐标被命名为不带括号

intersection of A--B and 0,3--2,2

按照@marmot 的建议,A-B 线更短

路口

\documentclass[tikz,border=2mm]{standalone} 
\begin{document}
\begin{tikzpicture}
\draw[help lines] (0,0) grid (3,3);
\draw (0,0) coordinate (A)node[below]{A} -- (2,1.5) coordinate (B)node[below right]{B}
(0,3)node[below left]{C} -- (2,2)node[below left]{D};
\fill[blue] (intersection of A--B and 0,3--2,2) circle (2pt);
\end{tikzpicture}
\end{document}

使用 www.DeepL.com/Translator 翻译

相关内容