画小半圆表示两条相交线不相连

画小半圆表示两条相交线不相连

我希望我的图表显示两条相交的线实际上并没有连接,但一条线从另一条线上方经过。

我希望实现的最佳效果是电路中使用的小半圆。这可能吗?有类似的东西在 TeXample但它只能处理水平线和垂直线。

我有一段代码,通过创建一个空节点,使其中一条线在交叉点前稍微停止。这产生了预期的结果,但我认为这不是实现我想要的结果的最简洁的方法:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (A) at (0,1) {A};
\node (B) at (1,-1) {B};
\node (C) at (1,1) {C};
\node (D) at (-1,-1) {D};
\node (i) at (intersection of A--B and D--C) {}; 
\draw (A) -- (B);
\draw (D) -- (i);
\draw (i) -- (C);
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

瞧!

  • 我定义了一个\intersect命令。如果你调用\intersect{p1}{p2}{q1}{q2},它将p1--p2在与线相交的地方画一个小半圆q1--q2

  • 它将线分成三段绘制:从到交点之前的p1--p2一条直线,然后是直径为 的半圆,最后是到 的直线的余部分。p10.75mm1.5mmp2

  • 该代码依赖于 TikZ 的“距离修改器”,该修改器在 TikZ/PGF 手册的第 13.5.4 节中定义。

有人知道如何将“环”变成正确的半圆形吗?我认为那样看起来会稍微好一点。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

% \intersect{<p1>}{<p2>}{<q1>}{<q2>}
% draws the line p1--p2, showing a little semicircle
% where it intersects the line q1--q2.
\newcommand\intersect[4]{
  \draw let \p{c} = (intersection of #1--#2 and #3--#4) in
    (#1) -- ($(\p{c})!0.75mm!(#1)$) 
    to[bend right=90] ($(\p{c})!0.75mm!(#2)$) -- (#2)
}

\begin{document}
\begin{tikzpicture}
\node (A) at (0,1) {A};
\node (B) at (1,-1) {B};
\node (C) at (1,1) {C};
\node (D) at (-1,-1) {D};
\draw (A) -- (B);
\intersect{C}{D}{A}{B};
\end{tikzpicture}
\end{document}

相关内容