找到路径的中点

找到路径的中点

我有两个坐标 (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));

相关内容