ビジュアライザ
これまではJavaScriptとかでやってたけどRの方が綺麗なのでRで書くことにした。とりあえず、手動で手を加えやすくしたいので中間ファイルを噛ませることにする。プログラム中で次のようなファイルを吐く。
TEXT -10 0 S POINT 5.7924 8.15157 COLOR BLUE CIRCLE 0 0 8 COLOR GREEN LINE -10 0 -6.4 -4.8 LINE -10 0 -6.4 4.8 COLOR RED ARROW 5.7924 8.15157 -0.205616 7.99736 SEGMENT 5.7924 8.15157 7.61989 2.43665 COLOR PURPLE POLYGON 3 0 -15 -10 -25 12 -23 COLOR SKYBLUE TEXT 2 15 this text has spaces
png(filename="tmp.png", width=800, height=800, type="cairo") plot(c(), xlab="X", ylab="Y", xlim=c(-25.000000, 15.000000), ylim=c(-25.000000, 15.000000)) s = seq(0, 2*pi, len = 100) par(cex=2) text(-10, 0, labels = "S", col="black") points(x=5.7924, y=8.15157, col="black") polygon(cbind(8*cos(s)+0, 8*sin(s)+0), density=c(10,20), col="BLUE") abline(a=-13.333333, b=-1.333333, col="GREEN") abline(a=13.333333, b=1.333333, col="GREEN") arrows(5.7924, 8.15157, -0.205616, 7.99736, col="RED") segments(5.7924, 8.15157, 7.61989, 2.43665, col="RED") x_ <- c(0,-10,12) y_ <- c(-15,-25,-23) polygon(x_, y_, density=c(10,20), col="PURPLE") text(2, 15, labels = "this_text_has_spaces", col="SKYBLUE")
これをRscriptで実行すると次のような画像ファイルが生成される。
- 実装してること
- 線分を長さ付きで表示
- 描画範囲を設定
- 円や多角形の塗り潰し方を変更
- 点を表示する時のマーカー変更
- TODO
- 3次元幾何(ぐりぐり)
- 半直線
- インタラクティブモード(これやるんだったらProcessingの方がいいかも。Rにもあるけど)