
答え1
一般的にはTobiのアドバイスに従うことをお勧めしますが、これは非常に簡単なので、とにかく答えます。また、冒頭のチュートリアルを見ていない場合は、TikZ マニュアル、そうすることをお勧めします。最初の章 (第 2 章) では、そのような図を作成するために必要なすべてのことを学ぶことができます。
軸を描くのは問題ないと思います。2 本の直線だけです。
切り取られた円は、2つの円弧と2つの直線で構成されます。円弧を描くには、
arc[start angle=<degrees>, end angle=<degrees>, radius=<length>]
start angle
は、円の からまでの部分を反時計回りに描きますend angle
。 ( とすることもできますarc[start angle=<degrees>, delta angle=<degrees>, radius=<length>]
。 はdelta angle
弧の長さを度で示します。)
円の一番右の点から描き始めるとします。 が にあることはわかっているので(2,0)
、
\draw (2,0) ...
このポイントの下にラベルを追加したいのですが、後で追加することもできますが、この場合は同時に追加すると便利です。テキストは次のように追加しますnode [<options>] {<text>}
。
\draw (2,0) node[below] {2} ...
(ノードを個別に追加する場合は、 を実行できます\node [<options>] at (<coordinate>) {<text>};
。)
そこから、角度 0 から始めて 30 度 (sin(30) = 0.5 のため) の円弧を描きます。上記の説明に従ってください。
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}...
ここで、その円弧の終点の右側にラベルも追加しました。
次の部分は、左の円弧が始まるところまで直線を描くことです。x/y 座標を手動で計算することも、座標内で直接計算することもできますが、次のように指定される極座標を使用する方が便利です(<angle> : <radius>)
。
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2) ...
次に、2 番目の円弧を描き、node
ラベルとして を追加し、最後に開始点に戻る直線を描きます。閉じたパスを描くときは、最初の座標を繰り返す代わりに を使用しますcycle
。
\draw (2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
\draw
単独では黒い線だけが表示されますが、色を指定してオプションに入力することもできます。
\filldraw [
fill=brown!80!black,
draw=red,
very thick
]
(2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
(この場合のように と の両方を指定する場合、 の\filldraw
代わりにを使用する\draw
必要は必ずしもありません。)fill=<color>
draw=<color>
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\path [
fill=brown!80!black,
draw=red,
very thick
]
(2,0) node[below] {2}
arc[start angle=0, end angle=30, radius=2] node[right] {1}
-- (150:2)
arc[start angle=150, end angle=180, radius=2] node[below] {2}
-- cycle;
\draw [thick] (-3,0) -- (3,0);
\draw [thick] (0,-2) -- (0,2);
\end{tikzpicture}
\end{document}
答え2
tkz-euclideによる回答が追加されました
\documentclass{article} % or another class
\usepackage{xcolor} % before tikz or tkz-euclide if necessary
\usepackage{tkz-euclide} % no need to load TikZ
\usetikzlibrary{babel} %if there are problems with the active characters
\begin{document}
\begin{tikzpicture}
%define the origin O -- radius A
\tkzDefPoint(0,0){O}
\tkzDefPoint(1.41,0){A}
\tkzDrawPoints(O,A)
\tkzLabelPoints[below](O,A)
%draw the semicircle
\tkzDefPointBy[rotation= center O angle 180](A)
\tkzGetPoint{B}
\tkzDrawArc[line width=0.1pt, white](O,A)(B)
\tkzLabelPoints[below](B)
%draw the line at y=1
\tkzDefPoint(1,0){A'}
\tkzDefPoint(-1,0){B'}
\tkzDefShiftPoint[A'](90:1){A''}
\tkzDefShiftPoint[B'](90:1){B''}
\tkzDrawSegment[red,line width=1pt](A'',B'')
%draw the arc perimeter line
\tkzDrawArc[red,line width=1pt](O,A)(A'')
\tkzDrawArc[red,line width=1pt](O,B'')(B)
%color the fill inside
\fill[red!40] (-1,0) rectangle (1,1);
\tkzFillSector[rotate,color=red!40](O,A)(45)
\tkzFillSector[rotate,color=red!40](O,B)(-45)
%draw the center axis -horizontal and vertical
\tkzDrawLine(A,B)
\tkzDefLine[orthogonal =through O](B,A)\tkzGetPoint{X}
\tkzDrawLine(O,X)
\end{tikzpicture}
\end{document}