IDLの掟 ~ 図に塗りつぶしを入れる方法 (polygon関数) ~

IDL

今回は、「IDLで図に塗りつぶしを入れる方法」についてです。

使う関数は「polygon関数」です。

それでは、早速参りましょう。

polygon関数とは

デジタル大辞林によれば、polygonとは

多角形。三次元のコンピュータグラフィックスにおける立体形状を表現するために使われる多角形を指すことが多い。物体表面を小さい多角形(主に三角形)に分割し、その位置や角度、模様、質感などの見え方を個々に計算して3次元画像を描画する。

と言うそうです。polygonとは多角形ということですね。

つまり、polygon関数とは、IDLで作成した図に対して多角形の注釈をつけることのできる関数です。

図のある領域を塗りつぶしたい時や、誤差をエラーバーで表示するのではなく帯のように表示する時などに活躍するかと思います。

polygon関数の文法

polygon関数の、最低限必要な文法は以下のようになっています。

“graphic”は”変数名”なので適当に決めてください。

“x”は”多角形のx座標”です。

同様に、”y”は”多角形のy座標”です。

表1に、僕が特に使うキーワードとプロパティとその意味についてまとめておきました。

表1. polygon関数でよく使うKeywordsとProperties
data 図のx座標とy座標に対してpolygonを描画する data = 1, /data
target polygonの描画先を指定する target = graphic
color polygonの線の色を指定する color = ‘red’, etc…
fill_color polygonの内側の塗りつぶす色を指定する fill_color = ‘blue’
linestyle 線のスタイルを指定する。
0:solid line,
1:dotted line,
2:dashed line,
3:dash dot line,
4:dash dot dot dot line,
5:long dash line,
6:no line
linestyle = 0, 1, 2, 3, 4, 5, 6
transparency 塗りつぶす色の透明度を指定する。
0が透明度0を表し、100が透明度100を表す。
transparency = 80

polygon関数の具体的な使い方

実際にIDLを動かしながらpolygon関数を使ってみましょう。

今回は適当なsin波に対してランダム数を上下に乗っけて、その範囲を灰色で塗りつぶしてみましょう。

以下がソースコードです。

上記ソースコードの17行目までは値を定義して、sin波を生成して、ランダム誤差を出力しています。20行目のgraph_plotをすると以下のような図が出力されると思います。y座標の範囲を-2 ~ +2にしているだけで、残りの部分はデフォルトの設定と変わりません。

23行目のgraph_polygonを実行すると以下のような図が出力されると思います。ただし、環境の違いによってランダム誤差の値が異なると思いますので、そっくり同じ結果は得られないと思います。

このように、polygon関数を使えば、グラフの特定の領域を塗りつぶすことができます。

また、polygon関数の詳細はコチラのIDL Helpをご覧ください。

以上になります。最後までお読みいただきありがとうございました。

 

作成日:2018-11-13

 

コメント