可能重复:
当指定圆心时在 tikz 中绘制圆弧
这是一个非常简单的问题,但我做不到!抱歉,但我觉得坐标令人困惑。
我想在圆周围画一条弧线;两者应具有相同的旋转中心。我想将弧线相对于圆定位。
以下是需要更正的 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
- 在你的情况下是 2cm。因此,如果你将起点移向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}