Saltar al contenido

Círculos dentro de un rectángulo

Nuestro equipo de expertos luego de días de investigación y de juntar de información, dieron con la solución, deseamos que te resulte útil para tu proyecto.

Solución:

Es perfectamente posible anidar bucles. Sin embargo, anidar tikzpicture Se sabe que los entornos son peligrosos. Aunque a veces funciona, debe evitarse. Básicamente, se espera que se rompa.

yo lo que haria es dibujar los circulos primero y el fit la caja exterior que los rodea. Por ejemplo:

documentclass[border=5pt,tikz,multi]standalone
usetikzlibraryfit,positioning
begindocument
begintikzpicture[ultra thick]
  coordinate (c0) at (0,0);
  foreach i [count=j, evaluate=j as k using j-1, evaluate=j as m using  int(mod(j,5))==0 ? "" : "draw" , evaluate=j as n using  j>10 ? "20mm" : "10mm" ] in 1,...,11
  node (cj) [right=7.5pt of ck |- c0, circle, anchor=north west, minimum size=n, m] ;
  node [fit=(c1) (c11), draw, rounded corners=15pt, inner xsep=5mm, minimum height=30mm] ;
endtikzpicture
enddocument

radio

Si lo prefiere, simplemente puede dibujar los círculos uno por uno y luego dibujar el cuadro de la misma manera. Solo nombre el más a la izquierda y el más a la derecha para que pueda decir fit=() () y todo debe estar bien.

En este caso particular, podría, si realmente quisiera, anidar el tikzpictures. Sin embargo, (5,1) Me senté x=5cmmuy a la izquierda del borde más a la izquierda de la caja que está en x=10cm. Así que para ponerlo en la caja, tendrías que ponerlo en la caja.

También tienes que poner el tikzpicture dentro de un nodo. Por ejemplo:

documentclassarticle
usepackagetikz
usetikzlibraryfit,positioning
begindocument
begintikzpicture
  draw [rounded corners=15pt] (10,0) rectangle ++(15,3);
  node at (12.5,1.5) % BREAKAGE EXPECTED !!
    begintikzpicture% DON"T TRY THIS AT HOME !!
      draw circle (1cm);
    endtikzpicture
  ;
endtikzpicture
enddocument

círculo en caja

Pero no tiene mucho sentido cortejar el desastre cuando sería mucho más fácil escribir

documentclassarticle
usepackagetikz
usetikzlibraryfit,positioning
begindocument
begintikzpicture
  draw [rounded corners=15pt] (10,0) rectangle ++(15,3);
  draw (12.5,1.5) circle (1cm);
endtikzpicture
enddocument

que produce el mismo resultado sin los riesgos concomitantes y mucho más fácilmente.

Una de las muchas soluciones posibles (considerando el primer comentario de @cfr):

documentclass[border=11mm,
               tikz]standalone
usetikzlibrarycalc

    begindocument
begintikzpicture[
box/.style = draw, rounded corners=15pt,
              minimum width=150mm, minimum height=30mm
                    ]
node (a)   [box] ;
foreach i in 1,...,4
    draw ($(a.west)+(1.1*i,0.5)$) circle (5mm);
foreach i in 1,...,4
    draw ($(a.west)+(5+1.1*i,0.5)$) circle (5mm);
draw ($(a.east)-(2,0)$) circle (10mm);
endtikzpicture
enddocument

ingrese la descripción de la imagen aquí

Reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *