読者です 読者をやめる 読者になる 読者になる

AccessViolation Exception

仕事でもはんだづけ、家でもはんだづけ

Scalaでコッホ曲線を描画

ScalaでL-Systemをやってみた - AccessViolation Exception の続きとなります

描画


L-Systemで生成した文字列から画像を生成すると、自己相似図形の絵が書ける。ので描いた。とりあえずコッホ曲線だけ

結果


stroke = 2.0 , angle = 90.0でコッホ曲線を描画

f:id:kamiyaowl:20140312152300p:plain

f:id:kamiyaowl:20140312152316p:plain

f:id:kamiyaowl:20140312152322p:plain

f:id:kamiyaowl:20140312152344p:plain

f:id:kamiyaowl:20140312152353p:plain

f:id:kamiyaowl:20140312152402p:plain

まとめ


  • 非常に遺憾ながらある程度デカイとOutOfMemoryErrorで落ちる
    • 直さねば、スケーラブルを謳ってる言語なのでスマートに行く方法を考えよう
  • 描画をJavaに拘るのも変だしスマートにしたかったから置換規則から生成した文字列から座標に変換して書いてる
  • やたら再帰ばかりだったのでlist zip list.tail foreachで前後のデータを使って処理するテクを覚えた
  • implicit defでDouble to Intのキャストが省略できるのとかかっこいい、c#で似たようなことができないか考えていたところ

追記


メモリ問題は実行時のメモリ割り当てで回避できて、他の図形も書けるようにしておいた。画像サイズと座標合わせるのもだるいのでここらへんで

Scalaで自己相似図形を描画