TikZ,沿着路径绘制

TikZ,沿着路径绘制

我有两个半圆周,它们的交点定义为E。我想沿它们使用不同的线条样式/颜色。

为此,我首先path定义了半圆周。现在我想画:

  • 一条线沿着半圆周 orig1--Aorig1和交点之间E
  • 一条线沿着半圆周 orig2--Borig2和交点之间E

我尝试过

\draw[-] (orig1) to node {} (E);

orig1但当然,这会在和之间绘制一条直线E。我希望这条线沿着半圆周。

可以这样做吗?如果可以,怎么做?

\documentclass[tikz,border=1.5cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{angles,quotes,arrows,arrows.meta,calc,decorations.pathreplacing,through,intersections}

\begin{document}

\begin{tikzpicture}
\coordinate (orig1) at (0,0);

\path [name path=orig1--A, line width=0.5mm, red] (orig1) arc[start angle=0, end angle=180, radius=5cm] coordinate (A);
\coordinate (orig2) at ($(orig1)!0.5!(A)$);
\path [name path=orig2--B, line width=0.5mm, red] (orig2) arc[start angle=0, end angle=180, radius=5cm] coordinate (B);

\path [name intersections={of=orig1--A and orig2--B,by=E}];
\node at (E)[circle,fill,red] {};
%\coordinate (C) at (intersection of orig1--A and orig2--B);

\draw[-] (orig1) to node {} (E);

\end{tikzpicture}

\end{document}

答案1

在您的示例中,很容易获得必要的角度,但这并不总是正确的。因此,最好的方法可能是使用库spath3,剪切其组件中的路径,然后仅绘制所需的路径。

像这样:

\documentclass[tikz,border=1.618mm]{standalone}
\usetikzlibrary{calc,intersections,spath3}

\begin{document}
\begin{tikzpicture}
\coordinate (orig1) at (0,0);
\path [draw,spath/save=orig1--A, line width=0.5mm, red] (orig1) arc[start angle=0, end angle=180, radius=5cm] coordinate (A);
\coordinate (orig2) at ($(orig1)!0.5!(A)$);
\path [draw,spath/save=orig2--B, line width=0.5mm, red] (orig2) arc[start angle=0, end angle=180, radius=5cm] coordinate (B);
\path [draw,name intersections={of=orig1--A and orig2--B,by=E}];
\node at (E)[circle,fill,red] {};
% computing the angles
\draw[line width=1.5mm,teal] (orig1) arc[start angle=0, end angle=120, radius=5cm] arc[start angle=60, end angle=180, radius=5cm];
% with spath3
\tikzset
{% spath3 operatios:
   spath/split at intersections={orig1--A}{orig2--B},
   spath/get components of={orig1--A}\Acpts,
   spath/get components of={orig2--B}\Bcpts
}
\draw[line width=0.5mm,yellow,
      spath/use=\getComponentOf\Acpts{1},
      spath/use={\getComponentOf\Bcpts{2},weld}];
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容