我希望我的图表显示两条相交的线实际上并没有连接,但一条线从另一条线上方经过。
我希望实现的最佳效果是电路中使用的小半圆。这可能吗?有类似的东西在 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
一条直线,然后是直径为 的半圆,最后是到 的直线的余部分。p1
0.75mm
1.5mm
p2
该代码依赖于 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}