
指定した領域を点線で塗りつぶす方法を知りたいです。緑の領域を緑のランダムなドットで塗りつぶし、赤の領域の代わりに赤のランダムなドットで塗りつぶし、白の領域を青のランダムなドットで塗りつぶしたいです。これが私のコードです:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
%\usepackage{xcolor,pict2e}% to allow any radius
\tikzset{pics/myarc/.style args={inner #1 and outer #2 with fill #3}{
code={
\draw[very thick, #1] (1,0) arc (0:90:1cm);
\draw[very thick] (0,1) -- (0,2);
\draw[very thick, #2] (0,2) arc (90:0:2cm);
\draw[very thick] (2,0) -- (1,0);
\fill[#3] (1,0) arc (0:90:1cm) -- (0,2) arc (90:0:2cm) -- cycle;
}
}}
\begin{document}
\begin{tikzpicture}
\draw[very thick,<->] (-6,0) -- (6,0)node[anchor=north west] {$x$};
\pic [draw,very thick, rotate=-45] {myarc={inner blue and outer blue with fill green!}};
\pic [draw, very thick, rotate=45] {myarc={inner blue and outer blue with fill white}};
\pic [draw, very thick, rotate=135] {myarc={inner blue and outer blue with fill red!40}};
\pic [draw, very thick, rotate=225] {myarc={inner cyan and outer blue with fill white}};
\end{tikzpicture}
\end{document}
ご協力いただければ幸いです。ありがとうございます
答え1
通常のドット付き。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,patterns}
%\usepackage{xcolor,pict2e}% to allow any radius
\tikzset{pics/myarc/.style args={inner #1 and outer #2 with fill #3}{
code={
\draw[very thick, #1] (1,0) arc (0:90:1cm);
\draw[very thick] (0,1) -- (0,2);
\draw[very thick, #2] (0,2) arc (90:0:2cm);
\draw[very thick] (2,0) -- (1,0);
\fill[pattern=dots,pattern color = #3] (1,0) arc (0:90:1cm) -- (0,2) arc (90:0:2cm) -- cycle;
}
}}
\begin{document}
\begin{tikzpicture}
\draw[very thick,<->] (-6,0) -- (6,0)node[anchor=north west] {$x$};
\pic [draw,very thick, rotate=-45] {myarc={inner blue and outer blue with fill green!}};
\pic [draw, very thick, rotate=45] {myarc={inner blue and outer blue with fill blue}};
\pic [draw, very thick, rotate=135] {myarc={inner blue and outer blue with fill red!40}};
\pic [draw, very thick, rotate=225] {myarc={inner cyan and outer blue with fill blue}};
\end{tikzpicture}
\end{document}
ランダム化にはさらなる作業が必要であり、この質問そしてその答えは警告を与えるはずです。
そして、ここでは、この答え
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,patterns}
%\usepackage{xcolor,pict2e}% to allow any radius
\tikzset{pics/myarc/.style args={inner #1 and outer #2 with fill #3}{
code={
\draw[very thick, #1] (1,0) arc (0:90:1cm);
\draw[very thick] (0,1) -- (0,2);
\draw[very thick, #2] (0,2) arc (90:0:2cm);
\draw[very thick] (2,0) -- (1,0);
\clip (1,0) arc (0:90:1cm) -- (0,2) arc (90:0:2cm) -- cycle;
\foreach \x in {1,...,300}
{
\pgfmathrandominteger{\a}{5}{300}
\pgfmathrandominteger{\b}{5}{300}
\pgfmathrandominteger{\c}{30}{30}
\fill[#3] (0.01*\a,0.01*\b) circle (0.001*\c);
};
}
}}
\begin{document}
\begin{tikzpicture}
\draw[very thick,<->] (-6,0) -- (6,0)node[anchor=north west] {$x$};
\pic [draw,very thick, rotate=-45] {myarc={inner blue and outer blue with fill green!}};
\pic [draw, very thick, rotate=45] {myarc={inner blue and outer blue with fill blue}};
\pic [draw, very thick, rotate=135] {myarc={inner blue and outer blue with fill red!40}};
\pic [draw, very thick, rotate=225] {myarc={inner cyan and outer blue with fill blue}};
\end{tikzpicture}
\end{document}