[R-es] Dibujar una espiral

Carlos J. Gil Bellosta cgb en datanalytics.com
Jue Mar 14 12:46:31 CET 2013


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ó:
> On Thu, 14 Mar 2013 12:10:20 +0100
> Jorge Ayuso Rejas <jayusor en gmail.com> wrote:
>
>> Te valdría con:
>>
>> T = seq(0, 20*pi, length.out=1000)
>> X = T * cos(T)
>> Y = T * sin(T)
>> plot(X, Y, type="l")
>>
>> Poniendo type="l" te dibuja la curva directamente.
>>
>> Para los puntos te podría vales algo como esto :
>>
>> T = seq(0, 20*pi, length.out=1000)
>> X = T * cos(T)
>> Y = T * sin(T)
>> plot(X, Y, type="l")
>>
>> aux<-seq(0,20*pi)
>>
>> points(aux * cos(aux), aux * sin(aux),pch=20,col=2)
>
> 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.
>
>>
>>
>>
>> Saludos.
>>
>>
>>
>> El 14 de marzo de 2013 11:57, Griera <griera en gmail.com> escribió:
>>
>> > Hola:
>> >
>> > Funciona!!! El código es:
>> >
>> > T = seq(0, 20*pi, length.out=1000)
>> > X = T * cos(T)
>> > Y = T * sin(T)
>> > plot(X, Y, type="n")
>> > lines(X, Y)
>> >
>> > Dibuja la espiral. Ahora voy a ver como le inserto marcas equidistantes.
>> >
>> > Gracias!! Salud!!
>> >
>> > On Thu, 14 Mar 2013 11:27:35 +0100
>> > Jorge Ayuso Rejas <jayusor en gmail.com> wrote:
>> >
>> > > Mira aquí tienes ejemplos con lo que necesitas:
>> > >
>> > > http://www.statmethods.net/graphs/line.html
>> > >
>> > > Saludos.
>> > >
>> > >
>> > > El 14 de marzo de 2013 11:21, Griera <griera en gmail.com> escribió:
>> > >
>> > > > Hola:
>> > > >
>> > > > Estoy intentando dibujar una espiral a la que le quería colocar unas
>> > > > marcas equidistantes.
>> > > >
>> > > > Estoy utilizando:
>> > > >
>> > > > T = seq(0, 20*pi, length.out=1000)
>> > > > X = T * cos(T)
>> > > > Y = T * sin(T)
>> > > > plot(X, Y)
>> > > >
>> > > > que dibuja puntos siguiendo una espiral. Como podría convertirlo en una
>> > > > espiral continua con marcas equidistantes?
>> > > >
>> > > > He buscado en r-cran, y no he encontrado nada.
>> > > >
>> > > > Muchas gracias y saludos!! Griera
>> > > >
>> > > > _______________________________________________
>> > > > R-help-es mailing list
>> > > > R-help-es en r-project.org
>> > > > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> > > >
>> > >
>> > >
>> > >
>> > > --
>> > > Jorge Ayuso Rejas
>> >
>>
>>
>>
>> --
>> Jorge Ayuso Rejas
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es