1
삼각형이있는 사각형의 색상이 있습니다. 이제 크리스마스에 "쿠키 커터 (cutie cutter)"처럼이 노이즈를 자르고 싶습니다. 폴리곤 경로로 둘러싸인 삼각형의 노이즈가 발생합니다.다각형 바깥 쪽 모두 다듬거나 바깥 쪽을 채우십시오.
어떻게 다각형 테두리와 겹치는 모든 픽셀을 잘라내어 pdf로 저장할 수 있습니까?
나는이 개 아이디어를 내놓았다 : 1 픽셀 (컬러 노이즈) 모양의 여부 들어 있는지를 테스트하는 기능을 사용- 방법. 그것을 할 수 있습니다!
문제 : 테두리 픽셀의 가장자리가 선 밖으로 나옵니다. 이 예제에서는 매우 작습니다. 당신은 폴리곤 라인을 조금 더 크게 만들 수 있다고 주장 할 수 있습니다. - 방법 2 다각형 모양을 반전 한 다음 (다각형 외부에 채우기) 흰색으로 채 웁니다.
문제 : 플롯 미리보기 창에서 원하는 결과가 나타납니다. PDF로 저장하면 모든 결과가 검은 색 다각형 모양의 흰색이됩니다.
재현 예를는 :
library(magrittr)
library(ggplot2)
library(SDMTools)
polyGony <- c(0,0,100,50,50,100) %>% matrix(ncol=2,byrow = T) %>% as.data.frame()
deltaN <- 200 #grid width
sp1<-seq(1,100,length=deltaN)
sp2<-seq(1,100,length=deltaN)
sp<-expand.grid(x=sp1,y=sp2)
set.seed(1337)
sp$z <- sample(1:30,nrow(sp),replace = T)
# Method 1
outin = SDMTools::pnt.in.poly(sp[,1:2],polyGony)
outin$z <- sp$z
pointsInsideTri <- outin[outin$pip==1,-3]
p <- ggplot(pointsInsideTri, aes(x, y)) +
geom_raster(aes(fill = z)) +
scale_fill_gradientn(colours=c("#FFCd94", "#FF69B4", "#FF0000","#4C0000","#000000"))
p + geom_polygon(data = polyGony, aes(V1,V2),color="black", fill=NA) + theme(aspect.ratio = 1)
# Method 2
outSQ <-c(0,0,100,0,100,100,0,100)
invPolyGony <- c(outSQ,0,0,100,50,50,100) %>% matrix(ncol=2,byrow = T) %>% as.data.frame()
p <- ggplot(sp, aes(x, y)) +
geom_raster(aes(fill = z)) +
scale_fill_gradientn(colours=c("#FFCd94", "#FF69B4", "#FF0000","#4C0000","#000000"))
p + geom_polygon(data = invPolyGony, aes(V1,V2) ,colour="black", fill="white") + theme(aspect.ratio = 1)
PDF가 유일한 문제입니까? 나에게 당신이 무엇을 찾고 있는지 분명하지 않다. – Christoph
나는 다각형 경로로 픽셀 기반 이미지를 둘러싸고 싶다. 픽셀이 다각형 테두리 밖으로 "겹쳐"없어야합니다. 그럼 난 PDF 파일에 저장하고 싶습니다. –
내가 이해하는 한, 당신의 이야기는 오해의 소지가있다. 당신이하고 싶은 것과 사용하고 싶은 방법을 알고 있습니다. 귀하의 문제는 단지 PDF로 결과를 저장하는 방법입니다. – Christoph