Contents
はじめに
今回は、「IDLで図に塗りつぶしを入れる方法」についてです。
使う関数は「polygon関数」です。
それでは、早速参りましょう。
polygon 関数とは
デジタル大辞林によれば、polygonとは
多角形。三次元のコンピュータグラフィックスにおける立体形状を表現するために使われる多角形を指すことが多い。物体表面を小さい多角形(主に三角形)に分割し、その位置や角度、模様、質感などの見え方を個々に計算して3次元画像を描画する。
だそうです。要は,polygonとは多角形ということですね。
つまり、polygon関数とは、IDLで作成した図に対して多角形の注釈をつけることのできる関数です。
図のある領域を塗りつぶしたい時や、誤差をエラーバーで表示するのではなく帯のように表示する時などに活躍するかと思います。
polygon関数の文法
polygon関数の、最低限必要な文法は以下のようになっています。
graphic = polygon(x, y)
graphic
は 変数名なので適当に決めてください。
x
は多角形のx座標です。
同様に、y
は多角形のy座標です。
表1に、筆者が特に使うキーワードとプロパティとその意味についてまとめておきました。
表1. polygon関数でよく使うKeywordsとProperties
Keywords & Properties | Description | Syntax | |
---|---|---|---|
data | 図のx座標とy座標に対してpolygonを描画する | data = 1, /data | |
target | polygonの描画先を指定する | target = graphic | |
color | polygonの線の色を指定する | color = ‘red’, etc… | |
fill_color | polygonの内側の塗りつぶす色を指定する | fill_color = ‘blue’ | |
linestyle | 線のスタイルを指定する。linestyle | linestyle = 0, 1, 2, 3, 4, 5, 6 | |
transparency | 塗りつぶす色の透明度を指定する。0が透明度0を表し、100が透明度100を表す。 | transparency = 80 |
}
polygon関数の具体的な使い方
実際にIDLを動かしながらpolygon関数を使ってみましょう。
今回は適当なsin波に対してランダム数を上下に乗っけて、その範囲を灰色で塗りつぶしてみましょう。
以下がソースコードです。
;; データ数は100個
n = 100l
;; 0から99までの1刻みのデータを生成する。
x = dindgen(n, start = 0, increment = 1)
;; 適当に波数を決定する。
;; 今回は波長20の波を生成する
k = 2d*!pi/20d
;; sin波を生成する
data = sin(k*x)
;; 適当にプラスの誤差とマイナスのランダム数を生成して帯を作る。
errPlus = data + randomu(seed, n)
errMinus = data - randomu(seed, n)
;; sin波を出力する
graph_plot = plot(x, data, yrange = [-2, +2], color = 'black', linestyle = 0)
;; errPlusとerrMinusの幅を灰色で塗りつぶし表示する
graph_polygon = polygon($
[x, reverse(x)], [errPlus, reverse(errMinus)],$
target = graph_plot, /data,$
fill_color = 'gray', /fill_background, transparency = 75,$
linestyle = 0, thick = 2)
上記ソースコードの17行目までは値を定義して、sin波を生成して、ランダム誤差を出力しています。
20行目の graph_plot
をすると以下のような図が出力されると思います。
y座標の範囲を -2 ~ +2
にしているだけで、残りの部分はデフォルトの設定と変わりません。
23行目の graph_polygon
を実行すると以下のような図が出力されると思います。
ただし、環境の違いによってランダム誤差の値が異なると思いますので、そっくり同じ結果は得られないと思います。
おわりに
このように、polygon関数を使えば、グラフの特定の領域を塗りつぶすことができます。
また、polygon関数の詳細は IDL Help をご覧ください。
以上になります。最後までお読みいただきありがとうございました。
愛用品
- Xiser Pro Trainer
1日中踏み続けられる強靭なステッパーでおすすめです. - HHKB Professional 墨
x HHKB キートップセット 白
ボディは墨色キートップは白色なのでめちゃめちゃ目に優しいのでおすすめです. - Apple Magic Mouse 2
トラックパッドは指が攣りそうになりますけどマウスはその心配が無いのでおすすめです. - Apple MacMini
ミニマルでパワフルなデスクトップ PC なので個人的に大好きなのでおすすめです. - iiyama Display 27inch FullHD
鮮明すぎない画面で目も疲れにくいですし何より高さ調節できるのが最高なのでおすすめです. - KINTO UNITEA 550ml
500ml の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.
-
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
↩