Cálculo de vértices à partir do centróide

Boa tarde pessoal, Bom descobri onde estou errando, quando faço: for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){ O loop vai pegar a primeira coordenada de xcc e fazer todas as combinações com ycc. Na verdade, eu queria uma ajuda para o loop e fazer com que ele pegue apenas o primeiro valor de xcc e comparar apenas com o primeiro valor de ycc, seguido de xcc[2] com ycc[2] ate xcc[11] com ycc[11], meu script completo é: xcc<-c(672036,672332,672674,672079,671386,671364,670753,671854,669986,670860,671366) ycc<-c(6783650,6784105,6783470,6782354,6782416,6782418,6782199,6783073,6781853,6781791,6781911) res=NULL for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){ xa<-xcc[i]-20 ya<-ycc[j]+20 v1<-cbind(xa,ya) xb<-xcc[i]+20 yb<-ycc[j]+20 v2<-cbind(xb,yb) xc<-xcc[i]+20 yc<-ycc[j]-20 v3<-cbind(xc,yc) xd<-xcc[i]-20 yd<-ycc[j]-20 v4<-cbind(xd,yd) lim.p<-rbind(v1,v2,v3,v4,v1) write.table(lim.p, file ="parc.mod", col.names=T, row.names=F,append=T) result=read.table("parc.mod",header=F) }} Obrigado -- Alexandre dos Santos Engenheiro Florestal, Dr. Universidade Federal de Lavras Departamento de Entomologia Laboratório de Entomologia Florestal Caixa Postal 3037 37200-000 - Lavras/MG Fone: +55 (35) 9223-0304

Se tu ta usando o mesmo indice nas 2 variaveis não tem porque usar dois for (), um já basta: xcc<-c(672036,672332,672674,672079,671386,671364,670753,671854,669986,670860,671366) ycc<-c(6783650,6784105,6783470,6782354,6782416,6782418,6782199,6783073,6781853,6781791,6781911) o <- vector() for (i in 1:11) { o <- rbind(o,cbind(xcc[i]+c(-20,20,20,-20),ycc[i]+c(20,20,-20,-20))) } Da para fazer com o mapply() também, mas o resultado não direto no formato do teu exemplo []'s 2012/4/14 ASANTOS <alexandresantosbr@yahoo.com.br>
Boa tarde pessoal,
Bom descobri onde estou errando, quando faço:
for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){
O loop vai pegar a primeira coordenada de xcc e fazer todas as combinações com ycc. Na verdade, eu queria uma ajuda para o loop e fazer com que ele pegue apenas o primeiro valor de xcc e comparar apenas com o primeiro valor de ycc, seguido de xcc[2] com ycc[2] ate xcc[11] com ycc[11], meu script completo é:
xcc<-c(672036,672332,672674,**672079,671386,671364,670753,** 671854,669986,670860,671366) ycc<-c(6783650,6784105,**6783470,6782354,6782416,** 6782418,6782199,6783073,**6781853,6781791,6781911)
res=NULL for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){
xa<-xcc[i]-20 ya<-ycc[j]+20 v1<-cbind(xa,ya) xb<-xcc[i]+20 yb<-ycc[j]+20 v2<-cbind(xb,yb) xc<-xcc[i]+20 yc<-ycc[j]-20 v3<-cbind(xc,yc) xd<-xcc[i]-20 yd<-ycc[j]-20 v4<-cbind(xd,yd) lim.p<-rbind(v1,v2,v3,v4,v1) write.table(lim.p, file ="parc.mod", col.names=T, row.names=F,append=T) result=read.table("parc.mod",**header=F) }}
Obrigado
-- Alexandre dos Santos Engenheiro Florestal, Dr. Universidade Federal de Lavras Departamento de Entomologia Laboratório de Entomologia Florestal Caixa Postal 3037 37200-000 - Lavras/MG Fone: +55 (35) 9223-0304
______________________________**_________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/**cgi-bin/mailman/listinfo/r-br<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.

Obrigado Rodrigo, Por ter solucionado o meu problema e por deixar meu script mais elegante, Abraço, Alexandre Em 14/04/2012 14:20, Rodrigo Coster escreveu:
Se tu ta usando o mesmo indice nas 2 variaveis não tem porque usar dois for (), um já basta:
xcc<-c(672036,672332,672674,672079,671386,671364,670753,671854,669986,670860,671366) ycc<-c(6783650,6784105,6783470,6782354,6782416,6782418,6782199,6783073,6781853,6781791,6781911)
o <- vector() for (i in 1:11) { o <- rbind(o,cbind(xcc[i]+c(-20,20,20,-20),ycc[i]+c(20,20,-20,-20))) }
Da para fazer com o mapply() também, mas o resultado não direto no formato do teu exemplo
[]'s
2012/4/14 ASANTOS <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>>
Boa tarde pessoal,
Bom descobri onde estou errando, quando faço:
for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){
O loop vai pegar a primeira coordenada de xcc e fazer todas as combinações com ycc. Na verdade, eu queria uma ajuda para o loop e fazer com que ele pegue apenas o primeiro valor de xcc e comparar apenas com o primeiro valor de ycc, seguido de xcc[2] com ycc[2] ate xcc[11] com ycc[11], meu script completo é:
xcc<-c(672036,672332,672674,672079,671386,671364,670753,671854,669986,670860,671366) ycc<-c(6783650,6784105,6783470,6782354,6782416,6782418,6782199,6783073,6781853,6781791,6781911)
res=NULL for(i in 1:(length(xcc))){ for(j in 1:(length(ycc))){
xa<-xcc[i]-20 ya<-ycc[j]+20 v1<-cbind(xa,ya) xb<-xcc[i]+20 yb<-ycc[j]+20 v2<-cbind(xb,yb) xc<-xcc[i]+20 yc<-ycc[j]-20 v3<-cbind(xc,yc) xd<-xcc[i]-20 yd<-ycc[j]-20 v4<-cbind(xd,yd) lim.p<-rbind(v1,v2,v3,v4,v1) write.table(lim.p, file ="parc.mod", col.names=T, row.names=F,append=T) result=read.table("parc.mod",header=F) }}
Obrigado
-- Alexandre dos Santos Engenheiro Florestal, Dr. Universidade Federal de Lavras Departamento de Entomologia Laboratório de Entomologia Florestal Caixa Postal 3037 37200-000 - Lavras/MG Fone: +55 (35) 9223-0304 <tel:%2B55%20%2835%29%209223-0304>
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Alexandre dos Santos Engenheiro Florestal, Dr. Universidade Federal de Lavras Departamento de Entomologia Laboratório de Entomologia Florestal Caixa Postal 3037 37200-000 - Lavras/MG Fone: +55 (35) 9223-0304
participantes (2)
-
ASANTOS
-
Rodrigo Coster