友達のキッカンが最近Mixiで3次元のドラえもんをR言語でプログラミングし、
その作品を披露していました。それは以下の画像です↓
3時間かけて作ったとのこと。ドラえもんらしいが、何かが足りない気がしたので、
もう少しリアルに仕上げるため、手伝うことにしました。
一目見て、足りないものは四次元ポケットとひげ。
あと少し色が違うし、体のパーツのバランスも直す必要があった。
そうこう言ってるうちに、どんどんドラえもんらしくなりました。
まだ直すべきところがあるが、今のところこんな感じ↓
どうでしょう。
Rでどのようにできて、どう動くか興味のある方はこの1分39秒の動画をご覧ください。
更に興味のある方はRコードを好きなようにいじってみてください。
# package
require(rgl)
# background
rgl.bg(sphare=T,color=c("white","grey"))
# head
rgl.spheres( 1.6, 3.3, 7.5,radius= 3,color= "white") # white eye
rgl.spheres( 0.7,2.95,10.5,radius=0.5,color= "black") # black
rgl.spheres(-1.6, 3.3, 7.5,radius= 3,color= "white") # white eye
rgl.spheres(-0.7,2.95,10.5,radius=0.5,color= "black") # black
rgl.spheres( 0, 1.6, 11,radius= 1,color= "red") # nose
rgl.spheres( 0, 0.5, 0,radius= 10,color= "dodgerblue2") # blue head
rgl.spheres( 0,-0.1,1.87,radius=8.7,color= "white") # white face
rgl.spheres( 0,-1.5, 4.7,radius=5.55,color="darkred")# mouth
rgl.spheres( 0, -6, 1.5,radius= 6,color= "red") # neck band
rgl.spheres( 0, -7, 8.2,radius= 1,color="yellow") # bell
#whiskers
x <- seq(0,0,length=1000) # center
y <- seq(1,-3,length=1000)
z <- sqrt(10.571^2-(y-0.1)^2)
lines3d(data.frame(x,y,z),col="black",lwd=3)
lines3d(data.frame(x = c(3,9), y = c(0,2),z = c(9,9)),col="black",lwd=3) #right
lines3d(data.frame(x = c(3,9), y = c(0,0),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(3,9), y = c(0,-2),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(-3,-9), y = c(0,2),z = c(9,9)),col="black",lwd=3) # left
lines3d(data.frame(x = c(-3,-9), y = c(0,0),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(-3,-9), y = c(0,-2),z = c(9,9)),col="black",lwd=3)
# body
rgl.spheres( 0, -15, 0,radius=9,color= "dodgerblue2") # body
rgl.spheres( 0, -13, 3.5,radius= 7,color= "white") # body white
# pocket
x <- seq(-3,3,length=1000)
y <- seq(-13,-13,length=1000)
z <- sqrt(abs(10.5^2-(x)^2))-0.01
lines3d(data.frame(x,y,z),col="black",lwd=3)
x <- seq(-2.9,0,length=100)
y <- -13-sqrt(abs(2.9^2-(x)^2))
z <- sqrt(abs(10.5^2+(x)^2))-0.7
lines3d(data.frame(x,y,z),col="black",lwd=3)
x <- seq(0,2.9,length=100)
y <- -13-sqrt(abs(2.9^2-(x)^2))
z <- sqrt(abs(10.5^2+(x)^2))-0.7
lines3d(data.frame(x,y,z),col="black",lwd=3)
# arms
rgl.spheres( 7.5, -8, 2,radius= 2,color= "dodgerblue2") # arm
rgl.spheres( -7.5, -8, 2,radius= 2,color= "dodgerblue2") # arm
rgl.spheres( 10.5, -9, 3,radius=2.25,color= "white")# hand
rgl.spheres( -10.5, -9, 3,radius=2.25,color= "white")# hand
# legs
rgl.spheres( 4, -20, 4,radius= 3,color= "dodgerblue2")#leg
rgl.spheres( -4, -20, 4,radius= 3,color= "dodgerblue2")#leg
rgl.spheres( 4, -25, 4,radius= 3.2,color= "white")#foot
rgl.spheres( -4, -25, 4,radius= 3.2,color= "white")#foot
# tail
lines3d(data.frame(x = c(0,0), y = c(-15,-19),z = c(0,-11)),col="black",lwd=3) #right
rgl.spheres( 0, -19, -11,radius= 1,color= "red")
# takecopter
rgl.spheres( 0, 10, 0,radius= 1,color= "yellow")
lines3d(data.frame(x = c(0,0), y = c(10,15),z = c(0,0)),col="yellow2",lwd=3)
rgl.spheres( 0, 15, 0,radius= 0.8,color= "yellow")
y <- seq(15,15,length=100)
x <- seq(-5,5,length=100)
z <- sqrt(5^2-x^2)
lines3d(x,y,z,col="black",lwd=1)
lines3d(x,y,-z,col="black",lwd=1)
for (i in seq(1,5,length=20)) {
x <- seq(-i,i,length=100)
z <- sqrt(i^2-x^2)
lines3d(x,y,z,col="honeydew3",lwd=1)
lines3d(x,y,-z,col="honeydew3",lwd=1)
}
# rotate him
play3d(spin3d(axis = c(0, -1, 0), rpm = 60/3),duration=1*3)
play3d(spin3d(axis = c(1, 0, 0), rpm = 60/3),duration=1*3)
その作品を披露していました。それは以下の画像です↓
3時間かけて作ったとのこと。ドラえもんらしいが、何かが足りない気がしたので、
もう少しリアルに仕上げるため、手伝うことにしました。
一目見て、足りないものは四次元ポケットとひげ。
あと少し色が違うし、体のパーツのバランスも直す必要があった。
そうこう言ってるうちに、どんどんドラえもんらしくなりました。
まだ直すべきところがあるが、今のところこんな感じ↓
どうでしょう。
Rでどのようにできて、どう動くか興味のある方はこの1分39秒の動画をご覧ください。
更に興味のある方はRコードを好きなようにいじってみてください。
# package
require(rgl)
# background
rgl.bg(sphare=T,color=c("white","grey"))
# head
rgl.spheres( 1.6, 3.3, 7.5,radius= 3,color= "white") # white eye
rgl.spheres( 0.7,2.95,10.5,radius=0.5,color= "black") # black
rgl.spheres(-1.6, 3.3, 7.5,radius= 3,color= "white") # white eye
rgl.spheres(-0.7,2.95,10.5,radius=0.5,color= "black") # black
rgl.spheres( 0, 1.6, 11,radius= 1,color= "red") # nose
rgl.spheres( 0, 0.5, 0,radius= 10,color= "dodgerblue2") # blue head
rgl.spheres( 0,-0.1,1.87,radius=8.7,color= "white") # white face
rgl.spheres( 0,-1.5, 4.7,radius=5.55,color="darkred")# mouth
rgl.spheres( 0, -6, 1.5,radius= 6,color= "red") # neck band
rgl.spheres( 0, -7, 8.2,radius= 1,color="yellow") # bell
#whiskers
x <- seq(0,0,length=1000) # center
y <- seq(1,-3,length=1000)
z <- sqrt(10.571^2-(y-0.1)^2)
lines3d(data.frame(x,y,z),col="black",lwd=3)
lines3d(data.frame(x = c(3,9), y = c(0,2),z = c(9,9)),col="black",lwd=3) #right
lines3d(data.frame(x = c(3,9), y = c(0,0),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(3,9), y = c(0,-2),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(-3,-9), y = c(0,2),z = c(9,9)),col="black",lwd=3) # left
lines3d(data.frame(x = c(-3,-9), y = c(0,0),z = c(9,9)),col="black",lwd=3)
lines3d(data.frame(x = c(-3,-9), y = c(0,-2),z = c(9,9)),col="black",lwd=3)
# body
rgl.spheres( 0, -15, 0,radius=9,color= "dodgerblue2") # body
rgl.spheres( 0, -13, 3.5,radius= 7,color= "white") # body white
x <- seq(-3,3,length=1000)
y <- seq(-13,-13,length=1000)
z <- sqrt(abs(10.5^2-(x)^2))-0.01
lines3d(data.frame(x,y,z),col="black",lwd=3)
x <- seq(-2.9,0,length=100)
y <- -13-sqrt(abs(2.9^2-(x)^2))
z <- sqrt(abs(10.5^2+(x)^2))-0.7
lines3d(data.frame(x,y,z),col="black",lwd=3)
x <- seq(0,2.9,length=100)
y <- -13-sqrt(abs(2.9^2-(x)^2))
z <- sqrt(abs(10.5^2+(x)^2))-0.7
lines3d(data.frame(x,y,z),col="black",lwd=3)
# arms
rgl.spheres( 7.5, -8, 2,radius= 2,color= "dodgerblue2") # arm
rgl.spheres( -7.5, -8, 2,radius= 2,color= "dodgerblue2") # arm
rgl.spheres( 10.5, -9, 3,radius=2.25,color= "white")# hand
rgl.spheres( -10.5, -9, 3,radius=2.25,color= "white")# hand
# legs
rgl.spheres( 4, -20, 4,radius= 3,color= "dodgerblue2")#leg
rgl.spheres( -4, -20, 4,radius= 3,color= "dodgerblue2")#leg
rgl.spheres( 4, -25, 4,radius= 3.2,color= "white")#foot
rgl.spheres( -4, -25, 4,radius= 3.2,color= "white")#foot
# tail
lines3d(data.frame(x = c(0,0), y = c(-15,-19),z = c(0,-11)),col="black",lwd=3) #right
rgl.spheres( 0, -19, -11,radius= 1,color= "red")
# takecopter
rgl.spheres( 0, 10, 0,radius= 1,color= "yellow")
lines3d(data.frame(x = c(0,0), y = c(10,15),z = c(0,0)),col="yellow2",lwd=3)
rgl.spheres( 0, 15, 0,radius= 0.8,color= "yellow")
y <- seq(15,15,length=100)
x <- seq(-5,5,length=100)
z <- sqrt(5^2-x^2)
lines3d(x,y,z,col="black",lwd=1)
lines3d(x,y,-z,col="black",lwd=1)
for (i in seq(1,5,length=20)) {
x <- seq(-i,i,length=100)
z <- sqrt(i^2-x^2)
lines3d(x,y,z,col="honeydew3",lwd=1)
lines3d(x,y,-z,col="honeydew3",lwd=1)
}
# rotate him
play3d(spin3d(axis = c(0, -1, 0), rpm = 60/3),duration=1*3)
play3d(spin3d(axis = c(1, 0, 0), rpm = 60/3),duration=1*3)
発表姿
2009-12-18 | 研究
以前、中国で国際学会に参加した話は載せたが、自分の発表についてほぼ何も触れていなかった。
この学会のテーマは「地球変化による生物学的侵入」。僕が今関わっているプロジェクトはNZに侵入する可能性がある外来生物がもし入ってきたら、どこに住みつき、どの様に分布を広げるかを予測するという内容です。僕の仕事は数値モデルで予測すること。今回僕が発表した内容はGwen君と考えた新しいモデリング法です。
この学会の参加者の専門はほとんど生態学だったとわかっていたので、聞いてる人がどの分野の人でも大体の話が理解できるような発表をすることに専念した。ゆっくりしゃべり、できるだけ専門的な単語を使わず、わかりやすいスライドを作った。
よりわかりやすくするため、無意識にジェスチャーをたくさん使っていたようです:
普段あまり自分の顔を出しませんが、知り合いから写真が送られてきたので載せます。
今回、満足できる発表ができたと思っている。発表後、何人かに声をかけられ、質問に答えたり、更に深くディスカッションをした。一番嬉しかったコメントはあるお偉い研究者に「内容は難しかったが、説明がわかりやすく、おもしろかった。」と発表スタイルを褒めてくれたことかな。
この学会のテーマは「地球変化による生物学的侵入」。僕が今関わっているプロジェクトはNZに侵入する可能性がある外来生物がもし入ってきたら、どこに住みつき、どの様に分布を広げるかを予測するという内容です。僕の仕事は数値モデルで予測すること。今回僕が発表した内容はGwen君と考えた新しいモデリング法です。
この学会の参加者の専門はほとんど生態学だったとわかっていたので、聞いてる人がどの分野の人でも大体の話が理解できるような発表をすることに専念した。ゆっくりしゃべり、できるだけ専門的な単語を使わず、わかりやすいスライドを作った。
よりわかりやすくするため、無意識にジェスチャーをたくさん使っていたようです:
普段あまり自分の顔を出しませんが、知り合いから写真が送られてきたので載せます。
今回、満足できる発表ができたと思っている。発表後、何人かに声をかけられ、質問に答えたり、更に深くディスカッションをした。一番嬉しかったコメントはあるお偉い研究者に「内容は難しかったが、説明がわかりやすく、おもしろかった。」と発表スタイルを褒めてくれたことかな。
ブッフェ
2009-12-11 | 食事
母と母の友達と3人でランチをしました。
品目が多く、つい欲張って全部取ってしまった。
一番右に写ってるラム肉ロースト(NZ産)も美味しかったな。
おかわりをし、おまけにデザートのケーキも全種類完食。
ごちそうさまでした。また食べに行きたいですね。
品目が多く、つい欲張って全部取ってしまった。
一番右に写ってるラム肉ロースト(NZ産)も美味しかったな。
おかわりをし、おまけにデザートのケーキも全種類完食。
ごちそうさまでした。また食べに行きたいですね。
鶏三昧
2009-12-03 | 食事
大阪で一度兄の家族と外食をしました。
店の名前は水たき料亭 博多 華味鳥。(HPに割引券有)
メニューは豊富。全て美味しそうでしたが、任せることにしました。
つくね。
からあげ。
ささみ。
メインの水炊き。
とろっとろのコラーゲンスープ。
最後は雑炊!
また行きたいですね・・・。
久々の「和食in日本」だったので、より美味しく感じたのだと思います。
店の名前は水たき料亭 博多 華味鳥。(HPに割引券有)
メニューは豊富。全て美味しそうでしたが、任せることにしました。
つくね。
からあげ。
ささみ。
メインの水炊き。
とろっとろのコラーゲンスープ。
最後は雑炊!
また行きたいですね・・・。
久々の「和食in日本」だったので、より美味しく感じたのだと思います。