スカラー場の可視化
Last-modified: 2019-01-27 (日) 03:11:35 (1518d)
「スカラー場」の可視化 スカラー場(ば)は、1つの位置(x,y)に1つの値が 割り当てられている様な空間のモデルです。 これを表現するのに、いろいろな可視化方法が存在 しますが、ここでではその中の1つをStarlogoのset-pcと いう命令を利用して実現してみます。 scale-pc命令 †scale-pcは次の様な形式です set-pc <色> <値> <最小値> <最大値> 指定の<色>で、指定の<値>が<最小値>から<最大値>までの どの位置にあるのかという比率で、黒から白の間で配色します。
スカラー場を作る †まず、可視化対象のスカラー場を仮に作ります。 これは、patchを利用したStarlogoのモデルでは 普通に出てきますが、ここでは、 中心からの距離に応じた値 が作るスカラー場とします。作り方としては、まず、Patchそれぞれ に数値を設定する必要があります。 それには。Obserber Proceduresのエリアの先頭行 に patches-own [ pote ] のようにpoteという変数を定義します。 パッチエリア(screen)の中心座標は(0,0)なので、そこからそれぞれ のパッチまでの距離(xcor, ycor)を利用して (xcor * xcor) + (ycor * ycor) で計算できます。なぜそうなるかをわからない方は、「三平方の定理 (ピタゴラスの定理)」を調べてみてください。 コード †上記のことは次の様なStarLogoの簡単なコードでかけます。 to setup ca let [:vmin 0] let [:vmax sqrt ((screen-half-width * screen-half-width) +(screen-half-height * screen-half-height)) ] ask-patches [ set pote sqrt( (xcor * xcor) + (ycor * ycor) ) scale-pc blue pote :vmin :vmax ] end screen-half-withとscreen-half-heightでパッチの縁の 座標わかるので、それからもっとも遠く離れている四隅までの 距離を計算し、<最大値>としています。 結果 †上のsetupという手続きを実行すると、パッチが次の様な 色で塗られます。 また、scale-pcの第三、第四の引数を取り替えると 次の様な絵になります。 おわりに †似たような命令に、scale-colorというものもあります。 また、この様なスカラー場の可視化では、最小値と最大値で 別な色(例:最小値、青、最大値、赤など)で指定し、 その途中の値は、その2つの色を補間して得るというのが 一般的です(サーモグラフィなど)。
Counter: 663,
today: 1,
yesterday: 0
|