Skip to content

[R-es] Dibujar una espiral

6 messages · Carlos J. Gil Bellosta, Griera, Carlos Ortega

#
On Thu, 14 Mar 2013 12:10:20 +0100
Jorge Ayuso Rejas <jayusor en gmail.com> wrote:

            
Es justo esto, pero los puntos rojos quería que estuviesen equidistantes (ahora en la parte interna de la espiral están más juntos y a parte de aquí se van separando). Igual esto no es posible?

Muchas gracias por la ayuda!! Griera.
#
n <- 20

T <- sapply(1:n, function(x) pi * seq(x-1, x, length.out = 5 * x))
T <- unlist(T)
X = T * cos(T)
Y = T * sin(T)
plot(X, Y)

es una "aproximación (y a trozos)" a la solución de tu problema, que
en términos matemáticos precisos es el de encontrar una
parametrización por longitud de tu espiral.

Lo que hago es muestrear cada ciclo más densamente (directamente
proporcional al radio "promedio" de la espiral en dicho ciclo).

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com


El día 14 de marzo de 2013 12:36, Griera <griera en gmail.com> escribió:
#
Hola Carlos:

On Thu, 14 Mar 2013 12:46:31 +0100
"Carlos J. Gil Bellosta " <cgb en datanalytics.com> wrote:

            
Es una solución alternativa a lo que quiero representar, ya que todos los círculos están equidistantes. No la entiendo en términos "matemáticos" (me lo tengo que revisar con más calma), pero igual me va bien!!

Gracias por la sugerencia. Saludos.
#
Gracias, Carlos.

Esta propuesta combinada con la que ha hecho Carlos J. Gil , creo que dará respuesta a mis necesidades. A ver si lo consigo.

Muchas gracias y saludos. Griera.

On Thu, 14 Mar 2013 13:03:55 +0100
Carlos Ortega <cof en qualityexcellence.es> wrote:

            
#
Hola:

Ya lo he solucionado combinando dos de las soluciones:

###############################################################
## "Carlos J. Gil Bellosta " <cgb en datanalytics.com>
## Puntos equidistantes
## Carlos Ortega <cof en qualityexcellence.es>
## Otra alternativa a diferentes marcas cada cierta distancia y con otro tipo de símbolo y color...
N <- 20  
T <- sapply(1:N, function(x) pi * seq(x-1, x, length.out = 5 * x))
length(T)
T <- unlist(T)
X = T * cos(T)
Y = T * sin(T)
dat.df = data.frame(  ID=1:1050
                   , X = X
                   , Y = Y
                   , tipo=rep(19,length(X))
                   , color=rep("blue", length(X))
                   )
plot(X, Y)
#Pongo marcas cada cierta distancia - Marcas diferentes y colores diferentes
mar.ca <- 15
dat.df$tipo <- ifelse(dat.df$ID %% mar.ca == 0, 3, 19 )
dat.df$color<- ifelse(dat.df$ID %% mar.ca == 0, "red", "blue" )
plot(dat.df$X, dat.df$Y, pch=dat.df$tipo, col=dat.df$color)
###############################################################

Muchas gracias a todos!!

Saludos. Griera.




On Thu, 14 Mar 2013 13:03:55 +0100
Carlos Ortega <cof en qualityexcellence.es> wrote: