答案1
两个选项:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\def\SSide{2}
\begin{document}
\tikz\draw (0,0) arc(0:-180:{0.5*\SSide*sqrt(3)}) arc(270:90:0.5*\SSide) arc(150:-30:\SSide) -- (-{\SSide*sqrt(3)},\SSide) -- (-{\SSide*sqrt(3)},0) --cycle;
\end{document}
另一个简短的选项;现在您可以使用一个命令来指定直角边的长度以及该直角边与斜边之间的角度:
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\newcommand\CircTrian[2]{%
\def\SSide{#1}%
\def\Angle{#2}%
\tikz \draw (0,0) arc(0:-180:0.5*\SSide) arc(270:90:{0.5*\SSide*tan((\Angle))}) arc(180-\Angle:-\Angle:{0.5*\SSide/cos(\Angle)}) -- (-\SSide,0) -- (-\SSide,{\SSide*tan((\Angle))}) -- cycle;%
}
\begin{document}
\CircTrian{2}{30}\qquad
\CircTrian{3}{37.5}\qquad
\CircTrian{2.5}{45}
\end{document}
答案2
一个简短的解决方案pst-eucl
:
\documentclass[12pt, pdf, x11names, border =3pt]{standalone}%
\usepackage{pst-eucl}
\usepackage{auto-pst-pdf}
\begin{document}
\psset{unit=2cm}%
\begin{pspicture*}(-1.6,-2.1)(5,4.1)
\pnodes(0,0){O}(0,3){A}(4,0){B}
\pstCircleAB[linecolor=Gold2]{A}{O}%
\pstCircleAB[linecolor=IndianRed2]{B}{O}%
\pstMiddleAB {A}{B}{I}
\psset{fillstyle=solid}
\pstArcnOAB[linecolor =DarkOliveGreen3]{I}{A}{B}%
\pspolygon(O)(A)(B)
\end{pspicture*}
\end{document}
答案3
\documentclass[tikz]{standalone}
\usetikzlibrary{calc,shapes.geometric}
\begin{document}
\begin{tikzpicture}[semic/.style args={#1,#2}{semicircle,minimum width=#1,draw,anchor=arc end,rotate=#2},outer sep=0pt,line width=.7pt]
\pgfmathsetmacro{\ATAN}{atan{-.75}}
\node [semic={3cm,90}] at (0,0){};
\node [semic={4cm,180}] at (4,0){};
\node [semic={5cm,\ATAN}] at (0,3){};
\end{tikzpicture}
\end{document}
TikZ 有一个现成的形状,名为semicircle
,可以通过加载shapes.geometric
库来获取。对于众所周知的 (3,4,5) 直角三角形,我们可以轻松地将宽度指定为 (3cm,4cm,5cm)。
我们将arc end
(直径上最左边的点)设置为锚点,并以适当的旋转将该点放置在所需的位置(顶点)。
该命令\pgfmathsetmacro{\ATAN}{atan{-.75}}
将计算斜边的斜率并将其存储在中\ATAN
。这需要calc
库。
答案4
另一个 PSTricks 解决方案,但使用较低的命令。
\documentclass[pstricks,margin=5mm]{standalone}
\begin{document}
\begin{pspicture}(-1.5,-2)(4.5,4.5)
\pscustom
{
\psarcn(0,1.5){1.5}{-90}{90}
\gsave
\translate(2,1.5)
\rotate{!3 4 atan neg}
\psarc(0,0){2.5}{0}{180}
\stroke
\grestore
\psarc(2,0){2}{180}{0}
\closepath
}
\end{pspicture}
\end{document}