![在两条射线之间绘制圆弧](https://linux22.com/image/314450/%E5%9C%A8%E4%B8%A4%E6%9D%A1%E5%B0%84%E7%BA%BF%E4%B9%8B%E9%97%B4%E7%BB%98%E5%88%B6%E5%9C%86%E5%BC%A7.png)
我画了两条射线,它们的公共端点在 A 处。我在从 A 到其中一条射线端点的 3/7 处标记一个点,并将其标记为P
。我想在两条射线之间画一个以 A 为中心、经过 P 的圆弧。
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
%Three points are labeled in the Cartesian plane.
\coordinate (A) at (0,0);
\coordinate (B) at (75:3);
\coordinate (C) at ($(B) +(5,0)$);
%Two rays are drawn
\draw[name path=path_AB, -latex] (A) -- (B);
\draw[name path=path_AC, -latex] (A) -- (C);
%The four vertices are labeled.
\node at ($(A)! -2.5mm! (C)$){$A$};
\node at ($(B)! -2.5mm! (A)$){$k$};
\node at ($(C)! -2.5mm! (A)$){$\ell$};
%The circular arc centered at A starts at P.
\coordinate (P) at ($(A)!3/7!(B)$);
\draw[fill] (B') circle (1.5pt);
%An arc between the rays starting at P.
\end{tikzpicture}
\end{document}
答案1
更新
由于您已经定义了P
,您可以计算从到它的长度A
,然后使用您在旧解决方案中看到的命令的更新版本:
%An arc between the rays starting at P.
\pgfmathsetlengthmacro{\radius}{(3/7)*3cm}
\draw (P) arc (80:30:\radius) node[pos=0,left] {$P$};
旧解决方案
如果您还没有要点,就像您的情况一样,您可以将其添加到您的代码中:
\draw ++(75:1) arc (75:27:1) node[pos=0,left] {$P$};
其作用是:
(0,0)
从(A坐标)开始,沿角度1
方向移动75
- 从那里,画一个从角度
75
到角度的圆弧27
。1
是半径。 P
最后,在弧的起点左侧添加一个节点。
一些解释
部分 ++(75:1) 编译后是否与 (0,0) ++(75:1) 相同?
是的,是一样的。
为什么 (75:27:1) 中有 27?
75
是起始角度,而27
是终止角度。这些角度不是路径退出或进入的角度,这里有一张图片来说明我的意思:
答案2
两个选择。
使用射线裁剪一个圆圈:
\begin{scope} \clip (B) -- (A) -- (C); \path[draw] let \p1=( $ (A) - (P) $ ) in (A) circle ({veclen(\x1,\y1)}); \end{scope}
使用
angles
库:\path[draw] let \p1=( $ (A) - (P) $ ) in pic[draw,angle radius={veclen(\x1,\y1)}] {angle = C--A--B}; \end{tikzpicture}
在两种情况下,calc
都使用该库来计算半径。
完整代码:
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{calc,angles,positioning,intersections,quotes,decorations.markings}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
%Three points are labeled in the Cartesian plane.
\coordinate (A) at (0,0);
\coordinate (B) at (75:3);
\coordinate (C) at ($(B) +(5,0)$);
%Two rays are drawn
\draw[name path=path_AB, -latex] (A) -- (B);
\draw[name path=path_AC, -latex] (A) -- (C);
%The four vertices are labeled.
\node at ($(A)! -2.5mm! (C)$){$A$};
\node at ($(B)! -2.5mm! (A)$){$k$};
\node at ($(C)! -2.5mm! (A)$){$\ell$};
%The circular arc centered at A starts at P.
\coordinate (P) at ($(A)!3/7!(B)$);
%\draw[fill] (B') circle (1.5pt);
\node[left] at (P) {$P$};
\begin{scope}
\clip (B) -- (A) -- (C);
\path[draw]
let
\p1=( $ (A) - (P) $ )
in
(A) circle ({veclen(\x1,\y1)});
\end{scope}
\path[draw]
let
\p1=( $ (A) - (P) $ )
in
pic[draw,angle radius={veclen(\x1,\y1)}] {angle = C--A--B};
\end{tikzpicture}
\end{document}
结果: