旋转圆圈内的网格

旋转圆圈内的网格

我有以下代码,

\begin{document}
\begin{tikzpicture}

\draw[thin,<->] (-4.5,0) -- (4.5,0);
\draw[thin,<->] (0,-4.4) -- (0,4.5);

\clip[draw] circle (4cm);
\draw[step=0.3cm,red,very thin] (-4,-4) grid (3,4);
\draw[step=0.3cm,blue,very thin] (3,-4) grid (4,4);

\draw[thick,-] (3,0.1) -- (3,-0.1) node[anchor=north] {$A$};
\end{tikzpicture}
\end{document}

1

我要做的是旋转网格但保持切口正好在垂直线上(我标记为 A 的地方)。

要旋转,我只需添加rotate=20,结果是

2

但我希望网格能转到绿线... 我会对蓝色网格做同样的事情(以其他角度)。问题是当我旋转时,我无法根据需要调整网格....

答案1

由于我不知道如何使用该clip命令,所以我无法解决这个问题,现在我明白了。

要获得结果,只需执行以下代码,

\begin{scope}
    \clip (2.5,-3) rectangle (3,3);
    \clip circle (3cm);
    \draw[rotate=-25,step=0.1cm,red,very thin] (1,-3) grid (3,3);
\end{scope}

\begin{scope}
    \clip (-3,-3) rectangle (2.5,3);
    \clip circle (3cm);
    \draw[rotate=23,step=0.15cm,blue,very thin] (-3,-3) grid (3,3);
\end{scope}

1

答案2

我建议只使用一个夹子的解决方案。使用半径和角度并使用极坐标。

    \documentclass{article}
    %https://tex.stackexchange.com/questions/644151/rotate-a-grid-inside-a-circle
    \usepackage{tikz}
    \begin{document}
    \newcommand{\rayon}{4}
    \newcommand{\ang}{60}
    \begin{tikzpicture}
    %\draw[help lines](0,0)grid(5,5);
    \node at (\ang:\rayon) (B) {$\bullet$};
    \node[above] at(B){$B$};
    \node at (-\ang:\rayon) (C) {$\bullet$};
    \node[below] at(C){$C$};

    \begin{scope}
    \clip[draw] (B)arc [start angle=\ang, end angle=360-\ang, radius=\rayon]--cycle;
    \draw[rotate=25,step=0.3cm,red,very thin] (-2\rayon,-2\rayon) grid (2\rayon,2\rayon);
    \end{scope}
    \begin{scope}
    \clip[draw] (B)arc [start angle=\ang, end angle=-\ang, radius=\rayon]--cycle;
    \draw[rotate=-25,step=0.3cm,blue,very thin] (-2\rayon,-2\rayon) grid (2\rayon,2\rayon);
    \end{scope}

    \draw [green!70,very thick](B)--(C);
    \end{tikzpicture}
    \end{document}

相关内容