我有以下代码,
\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}
我要做的是旋转网格但保持切口正好在垂直线上(我标记为 A 的地方)。
要旋转,我只需添加rotate=20
,结果是
但我希望网格能转到绿线... 我会对蓝色网格做同样的事情(以其他角度)。问题是当我旋转时,我无法根据需要调整网格....
答案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}
答案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}