第22回R勉強会@東京(#TokyoR)に参加&LTしてきました。

今回は、「らくがき!」というタイトルで緩い発表をしました。LT時間は5分でありましたが、3分程度しか場が持ちませんでした。後の懇親会では、発表の仕方のアドバイスなどを頂き、感謝です。

以下、汚いRのコード

basyo <- function(x,y){
if( y <= -0.5 * x && y >= 0.5 * x){
return(1)
}
if( y <= -0.5 * x && y <= 0.5 * x){
return(2)
}
if( y >= -0.5 * x && y <= 0.5 * x){
return(3)
}
if( y >= -0.5 * x && y >= 0.5 * x){
return(4)
}
}

plot(0,0,type="n",ylim=c(-1,1),xlim=c(-1,1))
iro=rainbow(100)
for( i in 1:20000){
points(runif(1,min=-1,max=1),runif(1,min=-1,max=1),pch=16,col=iro[sample(1:100,1)])
}


a <- locator(1)
ataix <- c(a$x)
ataiy <- c(a$y)
for( i in 1:18){
b <- locator(1)
ataix <- c(ataix,b$x)
ataiy <- c(ataiy,b$y)

lines(c(a$x,b$x),c(a$y,b$y),col="white",lwd=8)

katamuki = (b$y-a$y)/(b$x-a$x)
seppen = b$y - katamuki * b$x

s <- ifelse(a$x > b$x, b$x, a$x)
e <- ifelse(a$x > b$x, a$x, b$x)
print(b)
print(basyo(x=b$x, y=b$y))

if( basyo(x=b$x,y=b$y) == 1){
 for( ii in seq(s, e, 0.0001) ){
  lines(c(-1,ii-0.001), c(katamuki*ii + seppen, katamuki*ii + seppen), col="blue")
 }
}

if( basyo(x=b$x,y=b$y) == 2 ){
 for( ii in seq(s, e, 0.0001) ){
  lines(c(ii,ii), c(-1, katamuki*ii + seppen - 0.001), col="blue")
 }
}

if( basyo(x=b$x,y=b$y) == 3){
 for( ii in seq(s, e, 0.0001) ){
  lines(c(ii - 0.001 ,1), c(katamuki*ii + seppen, katamuki*ii + seppen), col="blue")
 }
}

if( basyo(x=b$x,y=b$y) == 4 ){
 for( ii in seq(s, e, 0.0001) ){
  lines(c(ii,ii), c(katamuki*ii + seppen - 0.001, 1), col="blue")
 }
}

a <- b
}

source("http://aoki2.si.gunma-u.ac.jp/R/src/plot.R", encoding="euc-jp")

a <- locator(1)
for( i in seq(0,0.06,0.0001)){
plot.circle(a$x,a$y,r=i,col="white")
}
a <- locator(1)
for( i in seq(0,0.06,0.0001)){
plot.circle(a$x,a$y,r=i,col="white")
}


for(i in seq(-1,min(ataix),0.001)){
lines(c(i,i),c(-1,1),col="blue",lwd=6)
}
for(i in seq(max(ataix),1,0.001)){
lines(c(i,i),c(-1,1),col="blue",lwd=6)
}
for(i in seq(-1,min(ataiy),0.001)){
lines(c(-1,1),c(i,i),col="blue",lwd=6)
}
for(i in seq(max(ataiy),1,0.001)){
lines(c(-1,1),c(i,i),col="blue",lwd=6)
}