Como desenhar alguns alvos como este?

Como desenhar alguns alvos como este?

Gostaria de mostrar algumas propriedades dos estimuladores nas estatísticas. Sou muito iniciante em LaTeX, então preciso de ajuda.

desejado

Responder1

Este tipo de diagrama é bastante fácil de desenhar usandotikz/pgf. Possui um manual extenso e bem escrito, portanto, ao lê-lo, você terá uma boa ideia do que precisa fazer. Aqui está um exemplo semelhante para você começar:

\documentclass[border=5mm,tikz]{standalone}
\usepackage{mwe}
\usepackage{tikz}
\begin{document}

  \begin{tikzpicture}
    \draw (0,0) circle[radius=1];
    \draw[red] (0,0) circle[radius=2];
    \draw[blue] (0,0) circle[radius=3];
    \foreach \x in {-1,0,1} {
      \foreach \y in {-1,0,1} {
        \node[fill=white] at (\x,\y) {x};
      }
    }
  \end{tikzpicture}

\end{document}

Isso produz a seguinte imagem:

insira a descrição da imagem aqui

Se você quiser desenhar xem uma lista específica de coordenadas, a maneira mais fácil de fazer isso é algo como:

\foreach \x/\y in {-1/1,0/1,-1/0,-1/0,0/0,1/0,-1/-1,0/-1,-1/-1} {
    \node[fill=white] at (\x,\y) {x};
}

Na verdade, isso é equivalente ao código do exemplo acima.

Responder2

Você também pode desenhar esse tipo de coisa muito bemMetapost, que você pode gostar de aprender. Aqui usei o normaldeviatecomando integrado para gerar alguns resultados aleatórios apropriados.

insira a descrição da imagem aqui

prologues := 3;
outputtemplate := "%j%c.eps";
beginfig(1);
numeric s;
picture target, cross;
s = 24;
target = image(for r=1 upto 3: draw fullcircle scaled (r*s); endfor);
cross  = image(draw (left--right) rotated 45; draw (left--right) rotated -45;);
picture A, B, C, D;
A = target shifted (-2s,+2s);
B = target shifted (+2s,+2s);
C = target shifted (-2s,-2s);
D = target shifted (+2s,-2s);

% mark "n" hits centered at "p" with "r" degree of scattering
vardef mark_hits(expr n, p, r) = 
  for i=1 upto n:
     draw cross shifted p shifted (r * normaldeviate, r * normaldeviate);
  endfor
enddef;

draw A; mark_hits(12, center A, 3); 
draw B; mark_hits(12, center B, 12);
draw C; mark_hits(12, center C shifted (-s/2,s/2), 3);
draw D; mark_hits(12, center D shifted (s/2,-s/2),12);

label.bot("(a)", 1/2[llcorner A, lrcorner A]);
label.bot("(b)", 1/2[llcorner B, lrcorner B]);
label.bot("(c)", 1/2[llcorner C, lrcorner C]);
label.bot("(d)", 1/2[llcorner D, lrcorner D]);

setbounds currentpicture to bbox currentpicture scaled 1.05;

endfig;


end

informação relacionada