使用 TikZ 绘制旋转半圆

使用 TikZ 绘制旋转半圆

使用 tikz(使用书面代码)绘制此图形的最简单方法是什么?

在此处输入图片描述

答案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}

在此处输入图片描述

相关内容