Saltar al contenido

Cómo dibujar una curva a partir de una lista de puntos previamente calculada

Después de mucho batallar ya hallamos la respuesta de este asunto que tantos usuarios de este sitio han tenido. Si tienes algún detalle que compartir no dejes de compartir tu información.

Solución:

Si entiendo lo que se requiere, entonces (algo sorprendentemente) draw plot [...] (P-x); funciona, siempre que establezca el domain y samples key correctamente. Entonces opciones como smooth puede ser usado.

documentclass[tikz,borde=5]standalone
begindocument
begintikzpicture[scale=0.2]
defR5
foreach i [evaluate=a=18*i; r=R+i;] in 0, 1,...,20
  fill (a:r) coordinate (P-i) circle [radius=0.2]
    node [anchor=a+180, font=tiny] $P_i$;
draw[blue] plot [domain=0:20, samples=21,smooth] (P-x);
endtikzpicture
enddocument 

Alternativamente, las coordenadas se pueden almacenar en un macro (esto tiene la ventaja de que se podría usar cualquier formato de coordenadas):

documentclass[tikz,borde=5]standalone
begindocument
begintikzpicture[scale=0.2]
defR5
foreach i [evaluate=a=18*i; r=R+i;] in 0, 1,...,20
  fill (a:r) coordinate (P-i) circle [radius=0.2]
    node [anchor=a+180, font=tiny] $P_i$; 
defcoords
foreach i in 0,...,20xdefcoordscoords(P-i)
draw[blue] plot [smooth] coordinates coords;
endtikzpicture
enddocument 

Ambos métodos producen el mismo resultado:

ingrese la descripción de la imagen aquí

Podrías definir tu lista como expandida macropor ejemplo usando:

defLL
foreach ii in 1,2,3,...,20
  xdefLLLL (P-ii)

y luego funciona

documentclass[tikz,border=7pt]standalone

begindocument
  begintikzpicture[scale=0.2]
    defRR5
    %calcul des coordonnées des points
    %calculation of the coordinates of the points
    foreach ii in 0, 1,2,3,...,20
        pgfmathsetmacroaa360 * ii/20
        pgfmathsetmacrorrRR + ii
        coordinate(P-ii) at (aa:rr);
    
    %dessin des points de la spirale/drawing spiral points
    foreach ii in 1,2,3,...,20
      node[fill=black,inner sep=0,minimum size=0.2cm,circle]at (P-ii);
    
    %Création de la liste point/ Creating the point list
    defLL
    foreach ii in 1,2,3,...,20
      xdefLLLL (P-ii)
    
    %affichage de la liste / list view
    nodeLL;
    % La commande ci-dessous fonctionne.
    % The command below works.
    draw[blue] plot coordinates  LL;
  endtikzpicture
enddocument

ingrese la descripción de la imagen aquí

Puedes usar otro foreach bucle para dibujar la curva.

documentclass[11pt]standalone
usepackagetikz

begindocument

begintikzpicture[scale=0.2]
    defRR5
    %calcul des coordonnées des points
    %calculation of the coordinates of the points
    foreach ii in 0, 1,2,3,...,20
        pgfmathsetmacroaa360 * ii/20
        pgfmathsetmacrorrRR + ii
        coordinate(P-ii) at (aa:rr);
    

    %dessin de la spirale/drawing of the spiral
    foreach ii in 1,2,3,...,20
    node[fill=black,inner sep=0,minimum size=0.2cm,circle]at (P-ii);
    

    %par contre, en recopiant les données affichées on peut tracer la spirale
    % on the other hand, by copying the displayed data we can draw the spiral
    foreach ii in 1,2,...,19
        draw[blue] (P-ii) -- (P-thenumexprii+1relax);
    
endtikzpicture

enddocument

Resultado:

ingrese la descripción de la imagen aquí

Te mostramos reseñas y valoraciones

Al final de todo puedes encontrar las notas de otros usuarios, tú asimismo puedes mostrar el tuyo si te apetece.

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