tikz условные обозначения углов для гиперболической геометрии

tikz условные обозначения углов для гиперболической геометрии

Для проекта я хотел нарисовать определенную область в гиперболическом пространстве. Граница этой области состоит из отрезков прямых и дуг окружностей. Я могу вызвать функцию drawдля отрезков прямых или дуг:

  • \draw (a,b) -- (c,d);
  • \draw (a,b) arc (theta1:theta2:r);

Я нахожу конечные точки настолько точно, насколько это возможно (это нормально).

Функция дуги определяется где

  • (a,b)это отправная точка
  • theta1это угол обзора
  • theta2это конечный угол

Условные обозначения углов в TiKZ настолько запутанны, что после множества проб и ошибок я понял, что мой радиус всегда равен 1, а две точки (± 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}

Связанный контент