我手上的图几乎就是我想要的。最不吸引人的部分是从 $180^{\circ}-\theta$ 开始的箭头。
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
%AT is a chord of a circle, and B is a point on the circle distinct from A and T. \ell is a
%tangent line to the circle at T. \angle{ABT} and one of the angles between AT and \ell are
%supplementary angles.
\coordinate (O) at (0,0);
\draw[fill] (O) circle (1.5pt);
\draw (0,0) circle (1.5);
\path (230:1.5) coordinate (A) (110:1.5) coordinate (B) (325:1.5) coordinate (B') (20:1.5) coordinate (T);
\draw[fill] (T) circle (1.5pt);
\path let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(T)$), \n2={atan(\y2/\x2)} in node[anchor={0.5*(\n1+\n2)}, inner sep=0, font=\footnotesize] at ($(A) +({0.5*(\n1+\n2)+180}:0.15)$){\textit{A}};
\path let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)} in node[anchor={0.5*((\n1-180)+\n2)}, inner sep=0, font=\footnotesize] at ($(B) +({0.5*((\n1-180)+\n2)+180}:0.15)$){\textit{B}};
\node[anchor=200, inner sep=0, font=\footnotesize] at ($(T) +(20:0.15)$){\textit{T}};
%Line \ell is drawn. T is to be the midpoint of the drawn line.
\path[name path=line_ell] ($(T) +(110:1.25)$) -- ($(T) +(-70:1)$);
\path[name path=right_arrowhead_of_line_ell] (1.5,0) -- (1.75,0);
\coordinate[name intersections={of=line_ell and right_arrowhead_of_line_ell, by=a_point_near_right_arrowhead_of_line_ell}];
\coordinate (right_arrowhead_of_line_ell) at ($(a_point_near_right_arrowhead_of_line_ell) +(-70:1.4)$);
\path let \p1=($(T)-($(right_arrowhead_of_line_ell)$)$) in coordinate (left_arrowhead_of_line_ell) at ($(T) +(110:{veclen(\x1,\y1)})$);
\draw[latex-latex] (left_arrowhead_of_line_ell) -- (right_arrowhead_of_line_ell);
\node[anchor=110, inner sep=0, font=\footnotesize] at ($(right_arrowhead_of_line_ell) +(-70:0.1)$){$\ell$};
%Point S is located.
\coordinate (S) at ($(T) +(110:1.55)$);
\draw[fill] (S) circle (1.5pt);
\node[anchor=200, inner sep=0, font=\footnotesize] at ($(S) +(20:0.15)$){\textit{S}};
%Chords of the circle are drawn.
\draw (A) -- (B);
\draw[dashed] (B') -- (A);
\draw[dashed] (B') -- (T);
\draw (A) -- (T);
\draw (A) -- (T);
\draw let \p1=($(B)-(T)$), \n1={atan(\y1/\x1)} in (B) -- ($(T) +({\n1+180}:0.55)$);
%The marks indicating the measures \angle{ATS} and \angle{AB'T} are drawn. They are labeled \theta.
\draw[draw=blue] let \p1=($(A)-(T)$), \n1={atan(\y1/\x1)} in ($(T) +(110:0.25)$) arc (110:{\n1+180}:0.25);
\draw let\p1=($(A)-(T)$), \n1={atan(\y1/\x1)} in node[anchor={0.5*((\n1+180)+110)-180}, inner sep=0, font=\scriptsize] at ($(T) +({0.5*((\n1+180)+110)}:0.3)$){$\theta$};
%
\draw[draw=blue] let \p1=($(B')-(T)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(B')$), \n2={atan(\y2/\x2)} in ($(B') +(\n1:0.25)$) arc (\n1:{\n2+180}:0.25);
\draw let \p1=($(B')-(T)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(B')$), \n2={atan(\y2/\x2)} in node[anchor={0.5*(\n1+(\n2+180))-180}, inner sep=0, font=\scriptsize] at ($(B') +({0.5*(\n1+(\n2+180))}:0.3)$){$\theta$};
%The marks indicating the measures \angle{ATS} and \angle{AB'T} are drawn. They are labeled \theta.
\draw[draw=blue] let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)} in ($(B) +(\n2:0.35)$) arc (\n2:{\n1-180}:0.35);
\draw[latex-,shorten <=1pt] let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)}, \n3={0.5*((\n1-180)+\n2)} in ($(B) +(\n3:0.45)$) to[out=\n3, in=0, looseness=2] ++(-20pt,7.5pt) node[anchor=east, inner sep=0, font=\tiny]{$180^\circ-\theta$};
\end{tikzpicture}
\end{document}
答案1
只是为了好玩,一个选项使用轮廓将一些标签放在线条前面,然后使用后动作技巧绘制白线和黑色箭头以勾勒箭头轮廓,以及一个使用控件的选项示例,可以在 TikzEdt 中轻松编辑。使用的框架是 tkz-euclide,在这种情况下有两个宏来绘制切线。
梅威瑟:
\documentclass[border=2mm]{standalone}
\usepackage{xcolor}
\usepackage{amsmath}
\usepackage{tkz-euclide}
\usepackage[outline]{contour}
\usetikzlibrary{arrows.meta}
\usetkzobj{all}
\contourlength{2pt}
\begin{document}
\begin{tikzpicture}
% Set limits.
\tkzInit[xmin=-4,xmax=14.5,ymax=6.5, ymin=-5]
%\tkzGrid[sub,color=red!20!,subxstep=.2,subystep=.2]
\tkzClip
%Define principal points.
\tkzDefPoint(0,0){O}
\tkzDefShiftPoint[O](230:3){A}
\tkzDefShiftPoint[O](110:3){B}
\tkzDefShiftPoint[O](325:3){C}
\tkzDefShiftPoint[O](2.5,3.2){S} % From random point external to the circle.
\tkzTangent[from=S](O,A) \tkzGetPoints{U}{T}
%Define secondary points.
\tkzDefPoint(9,0){O'}
\tkzDefShiftPoint[O'](230:3){A'}
\tkzDefShiftPoint[O'](110:3){B'}
\tkzDefShiftPoint[O'](325:3){C'}
\tkzDefShiftPoint[O'](10:3){T'}
\tkzTangent[at=T'](O')\tkzGetPoint{h'} % h is a point in the tangent line and 1cm distance from T'
\tkzDefPointWith[linear,K=3.5](T',h')\tkzGetPoint{S'} % Allows to find a point k distances in the line T'-h'
%Draw the circles
\tkzDrawCircle[R,blue](O,3cm)
\tkzDrawCircle[R,blue](O',3cm)
% Draw all the angles
\tkzMarkAngle[fill=blue!15,size=1.5,thick](A,B,T)
\tkzMarkAngle[fill=blue, fill opacity=0.2, size=0.7](T,C,A)
\tkzDrawSegments[thick](B,T) % Must be traced before STA angle
\tkzMarkAngle[fill=blue!20,fill opacity=0.8, size=0.7](S,T,A)
\tkzMarkAngle[fill=blue!15,mkpos=1, size=0.7](A',B',T')
\tkzMarkAngle[fill=blue, fill opacity=0.2,mkpos=.2, size=0.7](T',C',A')
\tkzDrawSegments[thick](B',T') % Must be traced before STA angle
\tkzMarkAngle[fill=blue!20,fill opacity=0.8,mkpos=.2, size=0.7](S',T',A')
% Draw segments.
\tkzDrawSegments[thick,dashed](A,C C,T)
\tkzDrawSegments[thick](A,B A,T)
\tkzDrawSegments[thick,dashed](A',C' C',T')
\tkzDrawSegments[thick](A',B' A',T')
{%style only afects commands inside {}
\tikzset{line style/.append style={<->},>=Stealth}
\tkzDrawLine[add=1cm and 4cm](S,T)
\tkzDrawLine[add=1cm and 3cm,dashed,color=black!30](S,U)
\tkzDrawLine[add=1cm and 4cm](S',T')
}
% Draw points.
\tkzDrawPoints[fill=white,size=4pt](A,B,C,U)
\tkzDrawPoints[fill=black,size=5pt](O,T,S)
\tkzDrawPoints[fill=white,size=4pt](A',B',C')
\tkzDrawPoints[fill=black,size=5pt](O',T',S')
%Point labels
\tkzLabelPoints[color=blue,opacity=.7,above left](B,B',U)
\tkzLabelPoints[color=blue,opacity=.7,below left](A,A')
\tkzLabelPoints[color=blue,opacity=.7,above right =5pt](O,S,T,O',S',T')
% Label the angles.
\tkzLabelAngle[pos =1.2, rotate=25](A,B,T){$180-\theta$}
\tkzLabelAngle[pos =-.4](T,C,A){$\theta$}
\tkzLabelAngle[pos =-0.4](A,T,S){\contour{blue!20}{$\theta$}}
%Using pure tikz code
\draw[line width=5pt,draw=white, postaction={draw=black, thick,Stealth-}] (B)
++(290:45pt) to [in=0,out=290]
++(-1.2,-1.5) node[anchor=east] {\contour{white}{\Large $180-\theta$}};
\draw[line width=5pt,draw=white, postaction={draw=black, thick,Stealth-}] (B') % Option using controls
++(290:25.pt) .. controls (8.6,1.1) and (6.4,0.1) .. ++(-2,1) node[anchor=south] {\contour{white}{\Large $180-\theta$}};
%%%%%%
\tkzLabelAngle[pos =-1](T',C',A'){\Large $\theta$}
\tkzLabelAngle[pos =-1](A',T',S'){\contour{white}{\Large $\theta$}}
% Label the lines
\tkzLabelLine[pos=2.5,blue,right](S,T){\Large$\ell$}
\tkzLabelLine[pos=2.15,blue,right](S',T'){\Large$\ell$}
%Some tikz node text...
\draw node [anchor=west] at (-4,6) {\verb+\tkzDefShiftPoint[O](2.5,3.2){S}+};
\draw node [anchor=west] at (-4,5.5) {\verb+\tkzTangent[from=S](O,A) \tkzGetPoints{U}{T}+};
\draw node [anchor=west] at (4.5,6) {\verb+\tkzTangent[at=T'](O')\tkzGetPoint{h'}+};
\draw node [anchor=west] at (4.5,5.5) {\verb+\tkzDefPointWith[linear,K=3.5](T',h')\tkzGetPoint{S'}+};
\end{tikzpicture}
\end{document}
答案2
虽然不是最优雅的解决方案,但它确实有效:
\documentclass[border=5pt]{standalone}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
%AT is a chord of a circle, and B is a point on the circle distinct from A and T. \ell is a
%tangent line to the circle at T. \angle{ABT} and one of the angles between AT and \ell are
%supplementary angles.
\coordinate (O) at (0,0);
\draw[fill] (O) circle (1.5pt);
\draw (0,0) circle (1.5);
\path (230:1.5) coordinate (A) (110:1.5) coordinate (B) (325:1.5) coordinate (B') (20:1.5) coordinate (T);
\draw[fill] (T) circle (1.5pt);
\path let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(T)$), \n2={atan(\y2/\x2)} in node[anchor={0.5*(\n1+\n2)}, inner sep=0, font=\footnotesize] at ($(A) +({0.5*(\n1+\n2)+180}:0.15)$){\textit{A}};
\path let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)} in node[anchor={0.5*((\n1-180)+\n2)}, inner sep=0, font=\footnotesize] at ($(B) +({0.5*((\n1-180)+\n2)+180}:0.15)$){\textit{B}};
\node[anchor=200, inner sep=0, font=\footnotesize] at ($(T) +(20:0.15)$){\textit{T}};
%Line \ell is drawn. T is to be the midpoint of the drawn line.
\path[name path=line_ell] ($(T) +(110:1.25)$) -- ($(T) +(-70:1)$);
\path[name path=right_arrowhead_of_line_ell] (1.5,0) -- (1.75,0);
\coordinate[name intersections={of=line_ell and right_arrowhead_of_line_ell, by=a_point_near_right_arrowhead_of_line_ell}];
\coordinate (right_arrowhead_of_line_ell) at ($(a_point_near_right_arrowhead_of_line_ell) +(-70:1.4)$);
\path let \p1=($(T)-($(right_arrowhead_of_line_ell)$)$) in coordinate (left_arrowhead_of_line_ell) at ($(T) +(110:{veclen(\x1,\y1)})$);
\draw[latex-latex] (left_arrowhead_of_line_ell) -- (right_arrowhead_of_line_ell);
\node[anchor=110, inner sep=0, font=\footnotesize] at ($(right_arrowhead_of_line_ell) +(-70:0.1)$){$\ell$};
%Point S is located.
\coordinate (S) at ($(T) +(110:1.55)$);
\draw[fill] (S) circle (1.5pt);
\node[anchor=200, inner sep=0, font=\footnotesize] at ($(S) +(20:0.15)$){\textit{S}};
%Chords of the circle are drawn.
\draw (A) -- (B);
\draw[dashed] (B') -- (A);
\draw[dashed] (B') -- (T);
\draw (A) -- (T);
\draw (A) -- (T);
\draw let \p1=($(B)-(T)$), \n1={atan(\y1/\x1)} in (B) -- ($(T) +({\n1+180}:0.55)$);
%The marks indicating the measures \angle{ATS} and \angle{AB'T} are drawn. They are labeled \theta.
\draw[draw=blue] let \p1=($(A)-(T)$), \n1={atan(\y1/\x1)} in ($(T) +(110:0.25)$) arc (110:{\n1+180}:0.25);
\draw let\p1=($(A)-(T)$), \n1={atan(\y1/\x1)} in node[anchor={0.5*((\n1+180)+110)-180}, inner sep=0, font=\scriptsize] at ($(T) +({0.5*((\n1+180)+110)}:0.3)$){$\theta$};
%
\draw[draw=blue] let \p1=($(B')-(T)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(B')$), \n2={atan(\y2/\x2)} in ($(B') +(\n1:0.25)$) arc (\n1:{\n2+180}:0.25);
\draw let \p1=($(B')-(T)$), \n1={atan(\y1/\x1)}, \p2=($(A)-(B')$), \n2={atan(\y2/\x2)} in node[anchor={0.5*(\n1+(\n2+180))-180}, inner sep=0, font=\scriptsize] at ($(B') +({0.5*(\n1+(\n2+180))}:0.3)$){$\theta$};
%The marks indicating the measures \angle{ATS} and \angle{AB'T} are drawn. They are labeled \theta.
\draw[draw=blue] let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)} in ($(B) +(\n2:0.35)$) arc (\n2:{\n1-180}:0.35);
%\draw[latex-,shorten <=1pt] let \p1=($(A)-(B)$), \n1={atan(\y1/\x1)}, \p2=($(B)-(T)$), \n2={atan(\y2/\x2)}, \n3={0.5*((\n1-180)+\n2)} in ($(B) +(\n3:0.45)$) to[out=\n3, in=0, looseness=2] ++(-20pt,7.5pt) node[anchor=east, inner sep=0, font=\tiny]{$180^\circ-\theta$};
\node[inner sep=0pt] at (-1.8,1.26) (a) {\tiny $180^\circ-\theta$};
\draw[>=latex,->] (a.south) to[bend right=60] +(.9,-.15);
\end{tikzpicture}
\end{document}