VOYAGE GROUP エンジニアブログ

voyagegroup_techのブログ
VOYAGE GROUPエンジニアブログです。

2011年08月

Rを使ってお絵描き(アンパンマン3D)

こんにちは、ECナビの水越明哉(@Akiyah)です。

Rでお絵描きの続きです。今回は3Dに挑戦してみました。Rなら簡単でしたよ。

まずは、R-Tips57. パッケージ RGLを参考にしてRGLをインストールしておきます。私の環境はWindowsXPとUbuntu11.04なのですが、Ubuntuのほうは「rgl」パッケージをインストール - ryamadaの弟子日記をみてsynapticでインストールしました。

まずパッケージの呼び出しをします。
 library(rgl)                           # パッケージの呼び出し
そのあと、rglをつかって描画します。
 open3d()                               # デバイスの起動

 rgl.clear(type="lights")               # 光源の設定の消去
 rgl.light(theta = 15, phi = 25)
 rgl.viewpoint(0,0)

 spheres3d(  0,  0,  0, 85, color=heat.colors(24)[23])
 spheres3d(-55, -5, sqrt(85**2-55**2-5**2),  24, color=heat.colors(12)[5]) # ほっぺ
 spheres3d( 55, -5, sqrt(85**2-55**2-5**2),  24, color=heat.colors(12)[5]) # ほっぺ
 spheres3d(  0, -5, sqrt(85**2-5**2),        28, color=heat.colors(12)[4]) # 鼻
 spheres3d(-18, 40, sqrt(85**2-18**2-40**2), 15, color="black") # 目
 spheres3d( 18, 40, sqrt(85**2-18**2-40**2), 15, color="black") # 目
これでR上でアンパンマンができました!かんたん!
マウスで向きを変えることもできます。
ただこの素敵な動きをそのままブログに貼ることができないので、ぐりぐり写真に変換してみました。

Rで少しずつ角度を変えた画像をファイルに出力して
 for(i in -10:20) {rgl.viewpoint(i*3,i/4); rgl.postscript(paste(i+10,".eps",sep=""), fmt="eps")} 
そのあとGIMPでまとめて、ぐりぐり写真に加工しました。
{"src":"http://art48.photozou.jp/pub/876/237876/photo/96064293_org.png", "width":"480", "height":"360"}

R上では左右だけでなく上下にも動かせるのですが、雰囲気は伝わりますよね。
ハナやほっぺのテカリがうまく表現できていて、さすがRです。

参考:

Rを使ってお絵描き(アンパンマン)

こんにちは、6月からECナビで働いている水越明哉(@Akiyah)ともうします。

最近、Rを使いはじめました。Rとはオープンソースの統計解析ソフトで、解析したデータをグラフにするのも得意です。まだ手探り中ですが、なかなか良いツールだなぁと思っています。そこでRと仲良くなるためにRでお絵描きをしてみることにしました。

まずは、R -- 図形描画関数群を参考にして図形描画関数をインストールします。
source("http://aoki2.si.gunma-u.ac.jp/R/src/plot.R", encoding="euc-jp")
この図形描画関数を使ってアンパンマンを書いてみます。アンパンマンのソースはJavaScriptでアンパンマンを描くコードを参考にしました。
plot.start(asp=1)
plot.circlef( 200,    200,    85,        col=heat.colors(24)[23]) # 輪郭
plot.circlef( 200-55, 200-5,  24,        col=heat.colors(12)[5]) # 左ほっぺ
plot.circlef( 200+55, 200-5,  24,        col=heat.colors(12)[5]) # 右ほっぺ
plot.ellipsef(200,    200-5,  28, 23, 0, col=heat.colors(12)[4]) # 鼻
plot.ellipsef(200-18, 200+40,  9, 15, 0, col="black") # 左目
plot.ellipsef(200+18, 200+40,  9, 15, 0, col="black") # 右目
plot.ellipse( 200,    200-30, 42, 18, 0, 180, 360, lwd=3) # 口
げんき100ばい!アンパンマンがかけましたね。



あとは画像ファイルとして出力して、
dev.print(file="rpanman1.eps", width=10, height=10, horizontal=FALSE)
GIMPでまとめてgifアニメにしましたよ。
またRでお絵描きしたら投稿します。

参考:

Treasure2011開催!!

treasure

こんにちは。
ECナビ 人事の佐々木寛(@339)と申します。

ECナビ インターンシップ募集開始 ~ミチをソウゾウせよ~」で告知していましたが
もの創り実践プログラム【Treasure】」が8月15日(月)からスタートしました!

さて、本日で【Treasure】開始してから3日目になるのですが、これまでの講義内容は・・

▼初日
・ガイダンス
・環境について
 ・エディタ
 ・開発環境
 ・subversion

▼二日目
・HTML/CSS

▼三日目
・DB

となっています。

今年も未経験者~経験者まで幅広く参加しています。
未経験者はまだまだ環境に慣れなかったり、subversionでつまづいたりしていますが、少しずつターミナルでの作業がスムーズに行えるようになってきているようです。

Treasureでは講師やTA(Teaching Assistant)からはヒントを出したり、間違いを指摘したり、分からないことを教えはしますが、基本的に自分で書くをモットーとしています。
理由はシンプルで、自分で書かないと覚えない・身に付かないと考えているから。


4週間のTreasureを受講し終わった頃、どれだけの成長をして、どんなアウトプットをするのか。とても楽しみです。
圧倒的な成長を目指して、まずはひとつひとつ、基礎からしっかりと学習していきます。

※Treasure2011のtwitterハッシュタグは #Treasure2011 です。インターン生やTAがリアルタイムにつぶやいています。


講義イメージ
treasure2


記事検索
QRコード
QRコード