# RGB 0-255の三次元の立方体の模型。 # 同様にしてDKL空間も作ることが可能。 # その場合には、ゆがんだ直方体になり、 # Lum=0やL-M=0などの平面が横切る線を引く必要がある。 # CPANからbiOpsモジュールをインストールしておく。 library(biOps) x<-seq(0,255,len=256) rr <- matrix(x,nrow=256,ncol=256) bb1 <- matrix(255,nrow=256,ncol=256) bb0 <- matrix( 0,nrow=256,ncol=256) FF <- GG <- HH <- II <- JJ <- KK <- array(0,c(256,256,3)) rs <- seq(256,1,by=-1) II[,,1] = t(rr);II[,,2] = bb0;II[,,3] = rr; HH[,,1] = bb1; HH[,,2] = t(rr); HH[,,3] = rr; FF[,,1] = (t(rr))[,rs]; FF[,,2] = bb1; FF[,,3] = rr[,rs]; KK[,,1] = bb0; KK[,,2] = (t(rr))[,rs];KK[,,3] = rr[,rs]; JJ[,,1] = rr; JJ[,,2] = t(rr); JJ[,,3] = bb0; GG[,,1] = rr[rs,];GG[,,2] = (t(rr))[rs,];GG[,,3] = bb1; margin <- 50; hlength <- 256 * 4 + margin; vlength <- 768; MM <- array(255, c(vlength, hlength, 3)) MM[257:512, 1:256,] = II; MM[257:512, 257:512,] = HH; MM[257:512, 513:768,] = FF; MM[257:512,769:1024,] = KK; MM[ 1:256, 257:512,] = JJ; MM[513:768, 257:512,] = GG; # defalutで # quartz() # par(mfrow = c(1,1)) plot(imagedata(MM)) offset <- 20; v_middle_u <- 257-margin; v_middle_d <- 512+margin; # horizontal line segments(1, 512.5, 1024, 512.5, lty=2) segments(1, 256.5, 1024, 256.5, lty=2) segments(257, 0.5, 512, 0.5, lty=2) segments(257, 768.5, 512, 768.5, lty=2) # vertical line segments( 256.5, 1, 256.5, 768, lty=2) segments( 512.5, 1, 512.5, 768, lty=2) segments( 0.5, 256.5, 0.5, 512.5, lty=2) segments( 768.5, 256.5, 768.5, 512.5, lty=2) segments(1024.5, 256.5, 1024.5, 512.5, lty=2) # のりしろ右 segments(1024, 512.5, hlength, 512.5-offset, lty=2) segments(1024, 256.5, hlength, 256.5+offset, lty=2) segments(hlength, 256.5+offset, hlength, 512.5-offset, lty=2) # のりしろ上斜め線 segments( 0.5, 512.5, 0.5+offset, v_middle_d, lty=2) segments( 256.5, 512.5, 256.5-offset, v_middle_d, lty=2) segments( 512.5, 512.5, 512.5+offset, v_middle_d, lty=2) segments( 768.5, 512.5, 768.5-offset, v_middle_d, lty=2) segments( 768.5, 512.5, 768.5+offset, v_middle_d, lty=2) segments(1024.5, 512.5, 1024.5-offset, v_middle_d, lty=2) # のりしろ下斜め線 segments( 0.5, 256.5, 0.5+offset, v_middle_u, lty=2) segments( 256.5, 256.5, 256.5-offset, v_middle_u, lty=2) segments( 512.5, 256.5, 512.5+offset, v_middle_u, lty=2) segments( 768.5, 256.5, 768.5-offset, v_middle_u, lty=2) segments( 768.5, 256.5, 768.5+offset, v_middle_u, lty=2) segments(1024.5, 256.5, 1024.5-offset, v_middle_u, lty=2) # のりしろhorizontal line segments( 1+offset, v_middle_u, 256-offset, v_middle_u, lty=2) segments( 1+offset, v_middle_d, 256-offset, v_middle_d, lty=2) segments(513+offset, v_middle_u, 768-offset, v_middle_u, lty=2) segments(513+offset, v_middle_d, 768-offset, v_middle_d, lty=2) segments(769+offset, v_middle_u, 1024-offset, v_middle_u, lty=2) segments(769+offset, v_middle_d, 1024-offset, v_middle_d, lty=2) dev.print(device=png, filename="color_dice.png", width = 960)