在两条射线之间绘制圆弧

在两条射线之间绘制圆弧

我画了两条射线,它们的公共端点在 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$};

图1

旧解决方案

如果您还没有要点,就像您的情况一样,您可以将其添加到您的代码中:

\draw ++(75:1) arc (75:27:1) node[pos=0,left] {$P$};

其作用是:

  • (0,0)从(A坐标)开始,沿角度1方向移动75
  • 从那里,画一个从角度75到角度的圆弧271是半径。
  • P最后,在弧的起点左侧添加一个节点。

图 2

一些解释

部分 ++(75:1) 编译后是否与 (0,0) ++(75:1) 相同?

是的,是一样的。

为什么 (75:27:1) 中有 27?

75是起始角度,而27是终止角度。这些角度不是路径退出或进入的角度,这里有一张图片来说明我的意思:

图 3

答案2

两个选择。

  1. 使用射线裁剪一个圆圈:

    \begin{scope}
    \clip (B) -- (A) -- (C);
    \path[draw] 
      let
      \p1=( $ (A) - (P) $ )
      in
      (A) circle ({veclen(\x1,\y1)});
    \end{scope}
    
  2. 使用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}

结果:

在此处输入图片描述

相关内容