あるプロジェクトで、双曲空間に特定の領域を描画したいと考えました。その領域の境界は、線分と円弧で構成されます。draw
線分または円弧の関数を呼び出すことができます。
\draw (a,b) -- (c,d);
\draw (a,b) arc (theta1:theta2:r);
エンドポイントを可能な限り正確に見つけます (それで問題ありません)。
弧関数は次のように定義されます。
(a,b)
出発点ですtheta1
見つめる角度はtheta2
終了角度は
TiKZ の角度規則は非常にわかりにくいため、試行錯誤を重ねた結果、半径は常に 1 であり、使用できる 2 つの点は ( ± 1/2, √3/2 )、開始点、(a,b)
終了点(c,d)
、円の半径であることがわかりました。
主に必要なのは、灰色の網掛け領域 (A)、単位円の下の反転 (B)、および結合 (A+B) です。これは鉛筆のように見えます。
明らかなのは (今のところ)、線を 0.5 内側に押し込む必要があり、次に鉛筆で設定して、垂直線が円に当たる角度 (おそらく 60°) を見つける必要があることです。
しかし、小さな円の場合、この単純な描画演習は面倒になります。ただし、等角写像はユークリッド角を保存します。SL(2,Z) を反復すると、交差点が少し回転する場合があります。
間違ったコードは次のとおりです:
\begin{tikzpicture}
\draw[fill=blue!5!white, line width=0.5, draw=green]
(0,0.5) arc (90:0:0.5)--
(0.5,0) arc (180:0:0.5)--
(1.5,0) arc (180:90:0.5)--
(2,0.5)--(2,3)--(0,3);
\draw[color=black!20!white] (0, 3)--(0, 1);
\draw[color=black!20!white] (1, 3)--(1, 1);
\draw[color=black!20!white] (2, 3)--(2, 1);
\draw[color=black!20!white] (2,0) arc (0 :180:1);
\draw[color=black!20!white] (1,0) arc (0 : 90:1);
\draw[color=black!20!white] (1,0) arc (180: 90:1);
\draw[line width = 1] (-0.5,0)--(2,0);
\draw[line width = 1] (0,3)--(0,0);
\end{tikzpicture}
答え1
円の中心と次の円との交点の間の角度は 60 度であるという事実を利用し、たとえばを({cos(60)},{sin(60)})
座標として使用できます。そして、いくつかの円弧といくつかの直線を含むパスを描画します。
ここにすべてのラベルを追加していません。手描きのスケッチを再現しますか?
\documentclass[border=4mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=3]
\draw (-1.5,0) -- (1.5,0);
\filldraw [thin,fill=black!30] (0,0)
arc[start angle=0,end angle=60,radius=1] --
({-cos(60)},2) -- ({cos(60)},2) -- ({cos(60)},{sin(60)})
arc[start angle=120,end angle=180,radius=1];
\draw [ultra thin,densely dashed] (-1,0) arc[start angle=180,delta angle=-180,radius=1];
\foreach \x in {-1,-0.5,...,1}
\draw (\x,2pt) -- (\x,-2pt) node[below]{$\x$};
\end{tikzpicture}
\end{document}