我有两个半圆周,它们的交点定义为E
。我想沿它们使用不同的线条样式/颜色。
为此,我首先path
定义了半圆周。现在我想画:
- 一条线沿着半圆周
orig1--A
,orig1
和交点之间E
; - 一条线沿着半圆周
orig2--B
,orig2
和交点之间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}