Для проекта я хотел нарисовать определенную область в гиперболическом пространстве. Граница этой области состоит из отрезков прямых и дуг окружностей. Я могу вызвать функцию 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}