Saltar al contenido

Imagen de Tikz usando dos bucles “foreach”

Recuerda que en las ciencias un problema casi siempere puede tener diferentes soluciones, de igual modo nosotros compartimos lo mejor y más óptimo.

Solución:

En caso de que no quiera hacer cálculos analíticos (o si no tiene una parametrización simple para la línea).

documentclassarticle

usepackage[svgnames]xcolor
usepackagetikz
usetikzlibrarycalc
begindocument

begintikzpicture

 foreach x in 0,...,5
    draw [DodgerBlue](x,-1) circle (0.25);

foreach x in 0,...,5
    draw [-latex,red](x,-1) -- (x,-1.5) ;

draw [ultra thin] (5,-0.5) coordinate(aux0)  -- (0,-1) coordinate(aux1);

foreach x in 1,...,5
    draw [-latex,DarkGreen] (x,-1) coordinate(aux2) (x,-0.5) coordinate(aux3)
    (aux2) -- (intersection cs:first line=(aux2)--(aux3), 
    second line=(aux0)--(aux1));


endtikzpicture

enddocument

ingrese la descripción de la imagen aquí

Para hacer feliz a @ArtificialStupidity (?) un bucle…

documentclass[border=3.14mm]standalone
usepackage[svgnames]xcolor
usepackagetikz
usetikzlibrarycalc
begindocument
begintikzpicture
draw [ultra thin] (5,-0.5) coordinate(aux0)  -- (0,-1) coordinate(aux1);
foreach x in 0,...,5
    draw [DodgerBlue](x,-1) circle (0.25);
    draw [-latex,red](x,-1) -- (x,-1.5) ;
    unlessifnumx=0%    
    draw [-latex,DarkGreen] (x,-1) coordinate(aux2) (x,-0.5) coordinate(aux3)
    (aux2) -- (intersection cs:first line=(aux2)--(aux3), 
    second line=(aux0)--(aux1));
    fi
    
endtikzpicture
enddocument

Puedes usar una función lineal simple. Tenga en cuenta que sus puntas de flecha son bastante grandes en su escala. Puede ser una buena idea elegir una escala más grande o usar otra punta de flecha para tener una mejor representación del segundo caso.

función lineal

documentclassarticle

usepackage[svgnames]xcolor
usepackagetikz

begindocument

begintikzpicture

foreach x in 0,...,5
  draw [DodgerBlue](x,0) circle (0.25);
  draw [-latex,red](x,0) -- (x,-.5);

foreach x in 1,...,5
    draw [-latex,DarkGreen](x,0) -- (x,0.1*x);


draw [ultra thin] (5,.5) -- (0,0);

endtikzpicture

enddocument

Una solución de PSTricks con solo un bucle solo para fines de comparación.

documentclass[pstricks]standalone
usepackagepst-calculate
begindocument
beginpspicture[arrowsize=.2,arrowinset=0,linewidth=1pt](8.5,pscalculate8/3)
        foreach i in 0,1,...,5%
            pstVerb/x ispace  1.5 mul .5 add def%
            pscircle[linecolor=blue](!x 1).5
            psline[linecolor=red]->(!x 1)(!x 0)
            ifnumi=0relaxelsepsline[linecolor=green]->(!x 1)(!x ispace 3 div 1 add)fi
        
        psline[linestyle=dashed](.5,1)(!8 dup 3 div)
endpspicture
enddocument

ingrese la descripción de la imagen aquí

Eres capaz de ayudar nuestra función añadiendo un comentario y dejando una valoración te damos las gracias.

¡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 *