Mover os vértices de um polígono

Caros Listeiros, Criei um polígono (c1) abaixo com os dados dos vértices da área em UTM e gostaria de saber se alguém conhece alguma função para mover todos os vértices 30m para dentro e reduzir a área do polígono? #Contorno da área -------------------------------------------------------------- x.coords1<-c(371299.9, 371266.4, 371205.6, 371111.8, 371047.6, 371018.2, 371014.0, 371009.3, 370983.1, 370919.7, 370853.6, 370785.6, 370748.8, 370711.8, 370687.8, 370696.4, 370785.9, 370885.5, 371035.8, 371148.1, 371205.2, 371231.7, 371236.5, 371240.3, 371285.8, 371326.5, 371397.2, 371417.1, 371432.9, 371445.0, 371455.7, 371466.4, 371476.6, 371502.6, 371536.0, 371550.0, 371546.8, 371528.3, 371470.0, 371393.3, 371299.9, 371299.9) y.coords1<-c(8246589, 8246560, 8246508, 8246428, 8246373, 8246349, 8246348, 8246352, 8246385, 8246465, 8246551, 8246638, 8246685, 8246732, 8246764, 8246771, 8246846, 8246932, 8247062, 8247160, 8247209, 8247230, 8247224, 8247221, 8247160, 8247107, 8247016, 8246991, 8246967, 8246939, 8246914, 8246892, 8246875, 8246846, 8246821, 8246809, 8246802, 8246785, 8246735, 8246669, 8246589, 8246589) # Cria um poligono t05<-unique(data.frame(x=rev(x.coords1),y=rev(y.coords1))) c1 = cbind (t05$x, t05$y) r1 = rbind (c1, c1[1, ]) # junta plot(c1) polygon(c1) # -- ====================================================================== Alexandre dos Santos Proteção Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ====================================================================== --- Este email foi escaneado pelo Avast antivírus. http://www.avast.com

Alexandre, bom dia! Não sei se ainda tem interesse na questão, mas como vi que não obteve respostas anteriormente, resolvi postar uma sugestão usando rgeos::gBuffer(). Nesse caso específico não se preservou o número original de vértices. ### <code r> sapply(c("sp", "rgdal", "rgeos", "maptools"), require, char=T) #Contorno da área t05 <- data.frame(x = c(371299.9, 371266.4, 371205.6, 371111.8, 371047.6, 371018.2, 371014, 371009.3, 370983.1, 370919.7, 370853.6, 370785.6, 370748.8, 370711.8, 370687.8, 370696.4, 370785.9, 370885.5, 371035.8, 371148.1, 371205.2, 371231.7, 371236.5, 371240.3, 371285.8, 371326.5, 371397.2, 371417.1, 371432.9, 371445, 371455.7, 371466.4, 371476.6, 371502.6, 371536, 371550, 371546.8, 371528.3, 371470, 371393.3, 371299.9, 371299.9), y = c(8246589, 8246560, 8246508, 8246428, 8246373, 8246349, 8246348, 8246352, 8246385, 8246465, 8246551, 8246638, 8246685, 8246732, 8246764, 8246771, 8246846, 8246932, 8247062, 8247160, 8247209, 8247230, 8247224, 8247221, 8247160, 8247107, 8247016, 8246991, 8246967, 8246939, 8246914, 8246892, 8246875, 8246846, 8246821, 8246809, 8246802, 8246785, 8246735, 8246669, 8246589, 8246589)) plot(t05, type="l", asp=1) # Criando objetos "sp" t05.sp <- t05 t05.spp <- SpatialPolygons(list(Polygons(list(Polygon(t05)), ID="area"))) plot(t05.spp, bor=3, lwd=2, axes=F) # Buffering plot(buffer <- gBuffer(t05.spp, width=-30, quadsegs=0, capStyle="SQUARE", joinStyle="MITRE", mitreLimit=5), add=T) ### Vértices da área reduzida t05.2 <- as.data.frame(coordinates(buffer@polygons[[1]]@Polygons[[1]])); t05.2 ### </code> Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W] Em 9 de fevereiro de 2015 11:06, ASANTOS <alexandresantosbr@yahoo.com.br> escreveu:
Caros Listeiros,
Criei um polígono (c1) abaixo com os dados dos vértices da área em UTM e gostaria de saber se alguém conhece alguma função para mover todos os vértices 30m para dentro e reduzir a área do polígono?
#Contorno da área ------------------------------ -------------------------------- x.coords1<-c(371299.9, 371266.4, 371205.6, 371111.8, 371047.6, 371018.2, 371014.0, 371009.3, 370983.1, 370919.7, 370853.6, 370785.6, 370748.8, 370711.8, 370687.8, 370696.4, 370785.9, 370885.5, 371035.8, 371148.1, 371205.2, 371231.7, 371236.5, 371240.3, 371285.8, 371326.5, 371397.2, 371417.1, 371432.9, 371445.0, 371455.7, 371466.4, 371476.6, 371502.6, 371536.0, 371550.0, 371546.8, 371528.3, 371470.0, 371393.3, 371299.9, 371299.9)
y.coords1<-c(8246589, 8246560, 8246508, 8246428, 8246373, 8246349, 8246348, 8246352, 8246385, 8246465, 8246551, 8246638, 8246685, 8246732, 8246764, 8246771, 8246846, 8246932, 8247062, 8247160, 8247209, 8247230, 8247224, 8247221, 8247160, 8247107, 8247016, 8246991, 8246967, 8246939, 8246914, 8246892, 8246875, 8246846, 8246821, 8246809, 8246802, 8246785, 8246735, 8246669, 8246589, 8246589)
# Cria um poligono t05<-unique(data.frame(x=rev(x.coords1),y=rev(y.coords1))) c1 = cbind (t05$x, t05$y) r1 = rbind (c1, c1[1, ]) # junta plot(c1) polygon(c1) #
-- ====================================================================== Alexandre dos Santos Proteção Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 8132-8112 (TIM) (+55) 65 9686-6970 (VIVO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
--- Este email foi escaneado pelo Avast antivírus. http://www.avast.com
_______________________________________________ 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.
participantes (2)
-
ASANTOS
-
Éder Comunello