Possível duplicata:
Desenhe um arco em tikz quando o centro do círculo for especificado
uma pergunta muito trivial, mas não consigo! Desculpe, mas acho as coordenadas confusas.
Gostaria de desenhar um arco em torno de um círculo; ambos devem ter o mesmo centro de rotação. E quero posicionar o arco em relação ao círculo.
Aqui está o MWE para corrigir:
\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}
Como faço para ter o mesmo centro para ambas as formas, com posicionamento relativo do arco? Alguma ideia simples e brilhante?
Responder1
O problema é que arc
você especifica o ponto inicial do arco, não o centro do círculo. Você poderia definir um comando personalizado como este:
O código
\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}
Agradecimentos especiais paraPaulo GaboriteJakepara simplificar isso.
O resultado
Responder2
Bem, não tenho uma ideia brilhante ... mas observe que isso arc
sempre começa em uma determinada coordenada - no seu caso, no centro do círculo sh1
, e seu centro é deslocado pela quantidade especificada no último argumento para arc
- no seu caso por 2 cm. Portanto, se você mudar o início do arc
na direção e quantidade apropriadas, obterá o que deseja (se entendi corretamente o seu problema).
No seu caso, tente:
\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}