我想连接两个点的弧。我希望弧逆时针移动。这两个点是 (3.15,0) 和 (-1.05,3.15)。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings, calc, fadings, decorations.pathreplacing, patterns, decorations.pathmorphing, positioning}
\begin{document}
\begin{tikzpicture}[line cap = round, line join = round, >=triangle 45]
\draw[->] (0,0) -- (3,0);
\draw (3.15,0) -- (-1.05,3.15);
\filldraw[gray] (3.15,0) circle (.15cm);
\draw[->] (3.3,0) -- (4,0);
\draw[->] (0,0) -- (-1,3);
\filldraw[gray] (-1.05,3.15) circle (.15cm);
\filldraw[gray] (0,0) circle (.15cm);
\end{tikzpicture}
\end{document}
答案1
显然,您并不介意圆弧的精确半径。您只想要这两点之间的曲线路径。然后您可以使用(point1) to[bend right] (point2)
。
但是,您构建图形的方式导致您必须考虑“大灰点”的半径,以便正确计算起点和终点的坐标。这很麻烦。
circle
如果您不使用图元来绘制那些大点,而是使用圆形节点,那么会容易得多,然后 tikz 会为您进行计算。
这是对同一图形进行编码的另一种方法,更易于阅读和修改。我为大点定义了一种样式,这使得可以minimum size
全局轻松更改它们的直径(选项)或颜色。我还为这些节点命名,以便以后在绘制箭头时可以参考这些名称。
\usetikzlibrary{arrows}
\tikzset{
big dot/.style={
circle, inner sep=0pt,
minimum size=3mm, fill=gray
}
}
\begin{tikzpicture}[line cap = round, line join = round, >=triangle 45]
\node[big dot] (origin) at (0,0) {};
\node[big dot] (A) at (3,0) {};
\node[big dot] (B) at (-1, 3) {};
\draw[->] (origin) -- (A);
\draw[->] (origin) -- (B);
\draw (A) -- (B);
\draw[->] (A) -- +(1,0);
\draw[->] (A) to[bend right] (B);
\end{tikzpicture}
答案2
类似这样的回答没问题。当然不能称之为老练的回答
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows, decorations.markings, calc, fadings, decorations.pathreplacing, patterns, decorations.pathmorphing, positioning}
\begin{document}
\begin{tikzpicture}[line cap = round, line join = round, >=triangle 45]
\draw[step=.5cm,gray!50,very thin] (-2.0cm,-1.0cm) grid (4.cm,4.0cm);
\draw[->] (0,0) -- (3,0);
\draw (3.15,0) -- (-1.05,3.15);
\filldraw[gray] (3.15,0) circle (.15cm);
\draw[->] (3.3,0) -- (4,0);
\draw[->] (0,0) -- (-1,3);
\filldraw[gray] (-1.05,3.15) circle (.15cm);
\filldraw[gray] (0,0) circle (.15cm);
\draw[red,<-] (3.15cm,0.0cm) arc (0:104:3.29);
\end{tikzpicture}
\end{document}