相对于圆定位圆弧

相对于圆定位圆弧

可能重复:
当指定圆心时在 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}

相关内容