Возможный дубликат:
Нарисуйте дугу в тикз, если указан центр окружности
очень тривиальный вопрос, но я не могу этого сделать! Извините, но я нахожу координаты запутанными.
Я хотел бы нарисовать дугу вокруг окружности; у обоих должен быть один и тот же центр вращения. И я хочу расположить дугу относительно окружности.
Вот MWE, который нужно исправить:
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\tikzset{state/.style={circle,draw=black, very thick,minimum size=4em}}
\begin{document}
\begin{tikzpicture}
\node[state, fill=black!20] (sh1) at (1,3) {Circle};
\draw[thick] (sh1) arc (0:300:2cm);
\end{tikzpicture}
\end{document}
Как мне сделать так, чтобы центр был одинаковым для обеих фигур, с относительным расположением дуги? Есть какая-нибудь простая и блестящая идея?
решение1
Проблема в том, что arc
вы указываете начальную точку дуги, а не центр окружности. Вы можете определить пользовательскую команду следующим образом:
Код
\documentclass{article}
\usepackage{tikz}
\tikzset{state/.style={circle,draw=black, very thick,minimum size=4em}}
\def\centerarc[#1] (#2) (#3:#4:#5)% [draw options] (center) (initial angle:final angle:radius)
{ \draw[#1] (#2) ++(#3:#5) arc (#3:#4:#5);
}
\begin{document}
\begin{tikzpicture}
\node[state, fill=black!20] (sh1) at (1,3) {Circle};
\centerarc[thick] (sh1) (0:300:2cm)
\end{tikzpicture}
\end{document}
Особая благодарностьПол ГаборитиДжейкдля упрощения этого.
Результат
решение2
Ну, у меня нет блестящей идеи... но заметьте, что arc
всегда начинается с заданной координаты - в вашем случае в центре круга sh1
, и его центр смещен на величину, указанную в последнем аргументе для arc
- в вашем случае на 2 см. Таким образом, если вы сместите начало arc
в соответствующем направлении и на соответствующую величину, вы получите то, что хотели (если я правильно понял вашу задачу).
В вашем случае попробуйте:
\documentclass{article}
\usepackage{tikz}
\usepackage{graphicx}
\tikzset{state/.style={circle,draw=black, very thick,minimum size=4em}}
\begin{document}
\begin{tikzpicture}
\draw[help lines] (-3,-3) grid + (9,9);
\node[state, fill=black!20] (sh1) at (1,3) {Circle};
\draw[thick] ([xshift=20mm] sh1.center) arc (0:300:2cm);
\end{tikzpicture}
\end{document}