我有两个坐标 (v1) 和 (v2),它们由一条弯曲的路径连接。现在我想将第三个变量 (v3) 连接到此路径的中点,但我不知道该怎么做。
\coordinate (v1) at (-2,0);
\coordinate (v2) at (-1,1);
\coordinate (v3) at (-1,0);
\draw[fill, black] (v1) circle[radius=1pt];
\draw[fill, black] (v2) circle[radius=1pt];
\draw[fill, black] (v3) circle[radius=1pt];
\path [bend left] (v1) edge (v2);
不,我想将 (v3) 连接到 (v1) 到 (v2) 路径的中点。我尝试使用类似这样的装饰在路径上的指定点放置标记和
\path [bend left,
postaction={decorate},
decoration={
markings,
mark = at position 0.5 with {\fill[red] circle[radius=1pt];}
}
] (v1) edge (v2);
但这总是收集(v1)。此外,我不知道如何处理这个标记。
答案1
M
对于 TikZ,可以沿着路径获取路径的中点并在该位置选择一个坐标pos=.5
\draw (v1) to[bend left] coordinate[pos=.5] (M) (v2);
TikZ代码:
\documentclass[tikz,border=5mm]{standalone}
\begin{document}
\begin{tikzpicture}[dot/.style={circle,fill,inner sep=1.5pt}]
\draw[lightgray] (-3,-1) grid (1,2);
\path
(-2,0) coordinate (v1)
(-1,1) coordinate (v2)
(0,0) coordinate (v3)
;
\draw (v1) to[bend left=50] coordinate[pos=.5] (M) (v2);
\draw[red] (M)--(v3);
\path
(v1) node[left,fill=white]{$v_1$} node[dot]{}
(v2) node[right,fill=white]{$v_2$} node[dot]{}
(v3) node[right,fill=white]{$v_3$} node[dot]{}
(M) node[above left,fill=white]{$M$} node[dot,red]{};
\end{tikzpicture}
\end{document}
M
对于 Asymptote,路径的中点p
可以通过以下方式获得
pair M=relpoint(p,.5);
// http://asymptote.ualberta.ca/
unitsize(1.5cm);
import math; // for grid
add(shift(-3,-1)*grid(4,3,lightgray));
pair v1=(-2,0), v2=(-1,1), v3=(0,0);
path p=v1 {dir(80)} .. v2 {dir(-20)};
pair M=relpoint(p,.5); // the midpoint of the path p
draw(p,blue);
draw(M--v3,red);
dot("$v_1$",align=W,v1);
dot("$v_2$",align=E,v2);
dot("$v_3$",align=E,v3);
dot(M,red);
shipout(bbox(5mm,invisible));