расположите дугу относительно окружности

расположите дугу относительно окружности

Возможный дубликат:
Нарисуйте дугу в тикз, если указан центр окружности

очень тривиальный вопрос, но я не могу этого сделать! Извините, но я нахожу координаты запутанными.

Я хотел бы нарисовать дугу вокруг окружности; у обоих должен быть один и тот же центр вращения. И я хочу расположить дугу относительно окружности.

Вот 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}

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