此示例显示通过反复试验的方法在点后绘制一些额外的曲线。
是否有特定的 tikz 命令可以执行此操作?
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
%
\begin{tikzpicture}
%
\coordinate (n_3) at (1,1);
\coordinate (h_1) at (1.5,3);
%dots
\fill[blue] (n_3) circle (2pt);
\fill[blue] (h_1) circle (2pt);
%Left curve
\draw (n_3) to [bend right=5](h_1);
\draw (n_3) -- ++(-0.2,-0.5);
\draw (h_1) -- ++(0.1,0.5);
%
\end{tikzpicture}
%
\end{document}
蓝点是用来画曲线的,那么蓝点后面的曲线该怎么延伸呢?
答案1
使用shorten > = <negative length>
和shorten < = <negative length>
将用曲线段延伸曲线。如果距离较短,曲率较小,这可能就是您所需要的,但是,正如 Altermundus 指出的那样,如果曲率较大,则线条将不再经过定义的点。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
%
\begin{tikzpicture}
%
\coordinate (n_3) at (1,1);
\coordinate (h_1) at (3,1.5);
%dots
\fill[blue] (n_3) circle (2pt);
\fill[blue] (h_1) circle (2pt);
%Left curve
\draw [shorten >=-0.4cm,shorten <=-0.4cm] (n_3) to [bend right=5](h_1);
%
\end{tikzpicture}
%
\end{document}
答案2
更新
我[bend right=70]
需要调整最后使用的节点,但结果是正确的
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (n_3) at (1,1);
\coordinate (h_1) at (1.5,3);
\fill[blue] (n_3) circle (2pt);
\fill[blue] (h_1) circle (2pt);
\draw (n_3) to [bend right=70]
node[pos=0,sloped,minimum width=.8cm] (n_3) {}
node[pos=1,sloped,minimum width=.8cm] (h_1) {}
(h_1) ;
\draw (n_3.center) -- (n_3.west);
\draw (h_1.center) -- (h_1.west);
\end{tikzpicture}
\end{document}
实际上,shorten
我们[bend right=70]
得到
在其他情况下,对于简单的曲线,我更喜欢 Jake 的答案,但是我的第一次尝试shorten
效率不高,因为我一直\documentclass{standalone}
这样做,所以我搜索了另一种方法。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (n_3) at (1,1);
\coordinate (h_1) at (1.5,3);
\fill[blue] (n_3) circle (2pt);
\fill[blue] (h_1) circle (2pt);
\draw (n_3) to [bend right=5]
node[pos=0,sloped,minimum width=.8cm] (n_3) {}
node[pos=1,sloped,minimum width=.8cm] (h_1) {}
(h_1) ;
\draw (n_3.center) -- (n_3.west);
\draw (h_1.center) -- (h_1.east);
\end{tikzpicture}
\end{document}
答案3
这是另一个解决方案:
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
%
\begin{tikzpicture}
%
\coordinate (n_3) at (1,2);
\coordinate (h_1) at (3,1.5);
%dots
\fill[blue] (n_3) circle (2pt);
\fill[blue] (h_1) circle (2pt);
%Left curve
\path (n_3) to [bend right=10]coordinate[pos=1.5](end) coordinate[pos=-0.5](begin)(h_1)--(end);
\draw (begin) -- (n_3) to [bend right=10] (h_1) -- (end);
\end{tikzpicture}
%
\end{document}