2014年4月27日日曜日

枯れた技術

師匠の絵に出会って惚れ込んではや十数年。五年かけて基礎を掴み、さらに五年ほど使い込んだ線引きは技術的にこれ以上の向上は見込めず、おそらく枯れている。数年前から師匠を追うことをやめ、別の画に師匠の技を混ぜることで自分の求める何かが生まれないかと試行錯誤しているところだが、なかなかこれというものに出会えない。気長に待つ。

漫画っぽくなってしまう癖を変えたいと思っているが、モデルのトレースをしてもそうなってしまうからそういう個性なのかもしれない。ただの悪癖かも知れない。

2014年4月26日土曜日

惑星運動

シミュレーション動画を眺めていたら作ってみたくなったので、

2014年4月25日金曜日

少し頑張る

気分転換に和服の女性を描いていたら、今までと少し違う趣になったので少し頑張ってみる。この下描きと粗塗りからどう変化するか、数ヶ月か数年ぶりに楽しく絵を描けそう。

kd tree

kd treeの教材を見ていて、壁を作る線を交差しないように各点を結ぶ線を引いたら何か見つかるような気がしたが、何も見いだせなかった。

2014年4月24日木曜日

気分転換

久しぶりにプログラミングに漬かったものの、知識が増えただけで終わってしまいそう。応用範囲が広く無駄にはならないと思うが、何か一つ残したかった。

気分転換に赤子を描いてみようとしたが、何をしようとしているのかとか、周りに何があるかとか、状況設定が浮かんでこなかった。無理に進めてもどうにもならないので、中途半端だがここまで。

2014年4月19日土曜日

Shortest Path

最短経路探索

5,000個のサンプル(描画時間、約10s)

ゲームを作っていた頃に欲しかった知識ですが、さらに昔に遡ると、雷を描画するようなツールを作りたかったこともあって、これで何とかなりそうな感じがしたので学習を深めるために作ってみることにしました。

左は完成品で描画してみたものですが、期待通りのものが出来ました。ひ弱な私のPCでは5,000個でメモリが不足しはじめました。

2014年4月14日月曜日

深い森のトロル

はじまり

なんやかんやあって、田舎に住む祖父母に会いに来た3人の子どもたち。

(中略)

出会い

いくつか出会いのパターンを考えた、その中の一つ。

どこかで失くしたスマホを探していたxxxは、いとこと森で遊んだ時に落としたのではないかと思い森に来ていた。

(中略)

変な生き物に気を取られていたが、それが持っているものに気が付き我に返った。

追い続けると森が開けているところに出てきた。そこで彼女が見たのは、

以下略

年老いたトロルを見たかっただけなので、全体的に何も考えていません。

MST-一息つく

アルゴリズムってすごい

プリム法というアルゴリズムに二分ヒープというものを加えて悪戦苦闘した結果、5,000個の座標を繋ぐMSTの作成時間を5sに短縮できた。

アルゴリズムを使わなかった頃2,000個でも一分かかっていたことを思うと感慨深い。

こちらから動作確認が出来ます。

うちのパソコンでも500個くらいならアニメーション出来ますが、加減がわからないので少なめの100個にしています。

見る人が見たら不完全な出来だと思うが、そろそろ勉強を再開したくなってきたのでMSTはこれまで。

何が出来るか

ゲームだと迷路の作成とか、実社会だと路線とか、生物だと粘菌とか。他にもいろいろ。

最小コストで手を繋ぐ方法を考える手法だと理解しているが、一週間近く付き合っても使い道を発見してあげることが出来なかった。

2014年4月12日土曜日

Minimum spanning tree経過-描画方法の変更とベンチマーク

SVGからCanvasへ描画方法の変更

SVGで描画処理をするのは重すぎたのでCanvasに切り替えてみた。

描画するだけなら500個を数秒で描画できたので、比べるまでもなくCanvasの勝ち。

ただし、描画するだけならCanvasが有利だが、クリックしたりドラッグしたりするようなアクションを求める場合はSVG。

2014年4月10日木曜日

うさぎとかめ

SVGの描画時の覚書

Chrome

Firefox

理由は不明だが、Firefoxは描画速度が遅い。
Chromeが19FPS前後で動作しているのに対して、Firefoxは10前後まで落ちた。

しかしChromeが完全勝利というわけではない?

処理速度が追いつかない量のオブジェクトを配置した場合はFirefoxの方が仕事をしてくれた。

と言っても、動いているものを提出したいので何とかしなければならない。

続く

今回は新しく見つけたD3.jsというJavaScript Libraryを試したくてSVGを選択したけれど、昔の経験を思い出したので手を変えてみる。
現在の倍ぐらいは描画できるようになって欲しい。

気分転換-レースパターンの作成

下ごしらえ

使ったのは2パターン、水平方向への反転を含む6枚羽(左)、同じく12枚羽(中)。それを合成したのが右図。

最初の目標はパイナップル編みを作ることだった。

適当に編んでみる

ちまちまと編みこんでみたけれど、その一段目に到達することなく飽きが来てしまった。無理やり小さな物を押し込めて満足することにした。

適当に編んでいれば適当なものが出来るだろうと思っていたら、悪い意味での適当なものになってしまった。
実際に編めそうなものになるよう気を配ったけど、1,2段目からすでに怪しい。

2014年4月9日水曜日

Minimum Spanning Treesの経過観察

Minimum Spanning Treesというものを知ってしまった。
昔作ったバウンズボールと組み合わせてリアルタイムに変化する様子を見てみたいと思ったので製作中。

とりあえずボールとそれをつなぐすべての線を表示するところまで終了。
マシンパワーが弱いためか、ボールの数を20個にするとCPUが100%近くまで跳ね上がってしまう。

まだ枝の選別を加えていない状態なのにこれではいけないので、カクカクするがフレームレートを10fpsに下げて、ボールの数も10個に減らした。かなり寂しい。

使っているのはD3.js。最初とまどったが分かると便利。

修正

点の数-1個の線があれば十分なので減らした。とても軽くなり、フレームレートを20fpsまで上げても50個位は描画できるようになった。
試しに、線の長さでソートして最短のものを描画するようにしてみたのが上の図。
これからアルゴリズムを加えていくが、どの程度遅くなるか、どのような動きをするのか楽しみ。

2014年4月8日火曜日

Seam Carvingがよく分からないけどすごい

2007年というバナーがはられているのでかなり昔の話。

Courseraでアルゴリズムの勉強をしている時に、大事な部分の形をなるべく保ったまま画像の縦横比を変えていくというサンプルを見せてもらい興味を持ったので覚書。

Seam Carving for Content-Aware Image Resizing

Shai Avidan,Ariel Shamir

検索してみると色々あるので、かなり有名なものらしい。
こういうものに出会えるのがうれしいので勉強が楽しい。

2014年4月5日土曜日

ChromeのSVGでGroupをクローンする時のこと

<svg width='480' height='160' viewbox='0 0 480 160'>
    <use id='use1' xlink:href='#g1' y='-50' />
    <g id='g1'>
        <use xlink:href='#rect1' x='120' y='80' fill='red' />
        <use xlink:href='#rect1' x='240' y='80' fill='blue' />
        <use xlink:href='#rect1' x='360' y='80' fill='green' />
    </g>
    <use xlink:href='#g1' y='50' />
    <rect id='rect1' x='-20' y='-20' width='40' height='40' />
</svg>

こんなのを埋め込んだ時、

Chrome

Firefox

Chromeは自分(#use1)より後ろにあるグループ(#g1)のクローンを表示してくれません。そのうち治ると思いますが。

確認のため試しに埋め込み

groupのみで、path類は大丈夫、たぶん。表示されない場合はこのあたりが関係しているかもしれません。

2014年4月3日木曜日

覚える人と考える人

この物語はフィクションです。

仕事が上手くいかない主人公、遠江近(とおとうみちか)は上司の昔なじみの開催している勉強会への参加を勧められた。

2014年4月1日火曜日

45度トーンを重ねた場合の干渉縞

45度以上は0度へ戻っていくので省略.

140331-とり

クリエイティブ・コモンズ・ライセンス

©Derek Midgley's Photostream ©Yusai

線の修正を減らしてなぐり描きのような表現を求めてみたが、汚いだけだった。