Я пытаюсь нарисовать круг и отметить на нем несколько точек следующим образом:
\begin{tikzpicture}
\draw (2,2) circle (2cm);
\fill[black!100!] (1,0.25) circle (0.10cm);
\fill[black!100!] (4,2) circle (0.10cm);
\fill[black!100!] (2.4,3.97) circle (0.10cm);
\fill[red!100!] (2,2) circle (0.10cm);
\node at (0.5,-0.25) {$(x_1,y_1)$};
\node at (5,2) {$(x_2,y_2)$};
\node at (2.4,4.57) {$(x_3,y_3)$};
\node at (2,1.5) {$(a_1,a_2)$};
\end{tikzpicture}
Что показывает это:
Я искал более простой способ маркировать узлы, не выясняя вручную положение каждой точки относительно нанесенной на график точки, и наткнулся на этот пост:Отметьте одну координату (pgfplots). Когда я пытался использовать pgf plot, я мог легко маркировать точки, но я не мог удалить различные оси и графики, которые появлялись. Есть ли более чистый способ сделать это?
решение1
- Использование полярной системы координат позволяет легко определять положение окружностей, а также их маркировку.
- Вместо рисования окружностей я предлагаю использовать узлы, которые можно легко маркировать с помощью опции
label
:
\documentclass[tikz, margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[
dot/.style = {circle, fill=#1, minimum size=2mm, inner sep=0pt},
dot/.default = black
]
% circle
\draw (0,0) circle (2cm);
% nodes
\node [dot=red, label=below:{$(a_1,a_2)$}] {};
\node [dot,label= 85:{$(x_3,y_3)$}] at (85:2) {};
\node [dot,label= 0:{$(x_2,y_2)$}] at ( 0:2) {};
\node [dot,label=240:{$(x_1,y_1)$}] at (240:2) {};
\end{tikzpicture}
\end{document}
Приложение:
Если вам нравится рисовать линии между узлами на схеме выше, то вы можете сделать это, просто назвав узлы, а затем нарисовать линию, \draw (<node name>) -- (<node name>);
например:
\documentclass[tikz, margin=3mm]{standalone}
\begin{document}
\begin{tikzpicture}[
dot/.style = {circle, fill=#1, minimum size=2mm,
inner sep=0pt, outer sep=0pt},
dot/.default = black
]
% circle
\draw (0,0) circle (2cm);
% nodes
\node (O) [dot=red, label=below:{$(a_1,a_2)$}] {};
\node (a) [dot,label= 85:{$(x_3,y_3)$}] at (85:2) {};
\node (b) [dot,label= 0:{$(x_2,y_2)$}] at ( 0:2) {};
\node (c)[dot,label=240:{$(x_1,y_1)$}] at (240:2) {};
% lines
\draw (O) -- (b);
\end{tikzpicture}
\end{document}
Конечно, вы можете провести линию между двумя координатами, заданными полярными координатами. Например:
\draw (0:0) -- (0:2):
Использование этого в MWE выше не даст того же результата, что показан на изображении выше: линия появится между центрами узлов с этими координатами, тогда как в MWE выше она находится между границами узлов.
решение2
\begin{tikzpicture}
\draw (2,2) circle (2cm);
\fill[black!100!] (1,0.25) circle (0.10cm) node[below]{$(x_1,y_1)$};
\fill[black!100!] (4,2) circle (0.10cm)node[right]{$(x_2,y_2)$};
\fill[black!100!] (2.4,3.97) circle (0.10cm)node[above]{$(x_3,y_3)$};
\fill[red!100!] (2,2) circle (0.10cm)node[below] {$(a_1,a_2)$};
\end{tikzpicture}