Я хочу нарисовать единичную окружность с несколькими окружностями с центром в точке (cos(x),sin(x))
.
\begin{tikzpicture}
\draw (0,0) circle (2cm);
\coordinate (a) at (2;10);
\draw (a) circle (0.3cm);
\end{tikzpicture}
Как определить точки с помощью полярных координат, чтобы нарисовать окружность (2cos(10),2sin(10))
?
решение1
Без полярных координат это можно легко сделать следующим образом:
\documentclass[border={10}]{standalone}
\usepackage{tikz}
\begin{document}
\def \f {1.0}
\begin{tikzpicture}
\foreach \a in {0, 30, ..., 350 }
\draw ({\f*cos(\a)}, {\f*sin(\a)}) circle (0.2cm);
\end{tikzpicture}
\end{document}
Результатом является
решение2
Сполярные координаты это тоже можно сделать :)
\draw (\a:1) circle (0.2cm);
Синтаксис (<angle>:<radius>)
. Вывод:
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \a in {0, 30, ..., 350 }
\draw (\a:1) circle (0.2cm);
\end{tikzpicture}
\end{document}
Или, в качестве альтернативы, использование graphs
библиотеки позволяет вам использовать
\graph[nodes={draw,circle,minimum width=.2cm},
clockwise,
radius=1cm,
empty nodes,
n=12]{subgraph I_n};
Вот полный MWE:
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass[border=3mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs}
\usetikzlibrary{graphs.standard}
\begin{document}
\begin{tikzpicture}
\graph[nodes={draw,circle,minimum width=.2cm},clockwise,radius=1cm,empty nodes,n=12]{subgraph I_n};
\end{tikzpicture}
\end{document}
Для справки см.Где я могу найти полный список стандартных подграфов, предлагаемых tikz?
решение3
\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\def\N{10}
\def\offsetAngle{19}
\def\radius{5mm}
\begin{document}
\begin{pspicture}(-4,-4)(4,4)
\curvepnodes[plotpoints=\N]{0}{360}{2 t \offsetAngle\space add PtoC}{X}
\foreach \i in {0,...,\the\numexpr\Xnodecount-1\relax}{\pscircle(X\i){\radius}}
\end{pspicture}
\end{document}
Противоречащее интуиции имя в \Xnodecount
на самом деле является последним индексом массива узлов с нулевой базой X
. Если кривая является замкнутой кривой, мы должны вычесть 1 из , \Xnodecount
чтобы удалить X9
(на основе приведенного выше примера), что на самом деле равно X0
.