概要
レーダーグラフとは、上の画像のようなものです。適当な引数を渡すことにより、レーダーグラフの画像を生成することができます。
使用例
Bitmap#draw_radar_graph に様々な値を渡して、どのように描画されるかの例を示します。
以下、values は
values = [100, 50, 120, 30, 60, 80]
draw_radar_graph(0, 0, values) # デフォルト
draw_radar_graph(0, 0, values, max:100, min:0) # 最大値と最小値を指定
draw_radar_graph(0, 0, values, max:100, min:0, mid:75) # 中間値を指定(max寄り)
draw_radar_graph(0, 0, values, max:100, min:0, mid:25) # 中間値を指定(min寄り)
以下、「max: 100, min: 0」は省略するが適用されている。
draw_radar_graph(0, 0, values) # 通常
draw_radar_graph(0, 0, values, draw_value: false) # 値を描画しない
ary = %w(炎 雷 闇 氷 風 光)
draw_radar_graph(0, 0, values, draw_value: false, captions: ary) # 項目名を指定
ary2 = [Cache.icon(96), Cache.icon(98), Cache.icon(103), Cache.icon(97), Cache.icon(101), Cache.icon(102)]
draw_radar_graph(0, 0, values, draw_value: false, captions: ary2) # 項目名に画像を指定
draw_radar_graph(0, 0, values) # 通常
draw_radar_graph(0, 0, values, captions: ary) # 項目名と数値を両方描画
draw_radar_graph(0, 0, values, captions: ary, unit: "%") # 数値に単位を付ける
draw_radar_graph(0, 0, values, captions: ary2, unit: "%") # 数値に単位を付け、項目名に画像を使う
以下、「captions: ary2」は省略するが適用されている。
draw_radar_graph(0, 0, values, unit: "%") # 通常
draw_radar_graph(0, 0, values, clockwise: false) # 反時計回り
draw_radar_graph(0, 0, values, angle: 0.5) # 角度の変更1
draw_radar_graph(0, 0, values, angle: 0.12) # 角度の変更2
draw_radar_graph(0, 0, values, unit: "%") # 通常
draw_radar_graph(0, 0, values, step: 2) # 目盛りの分割数を 2 に
draw_radar_graph(0, 0, values, step: 6) # 目盛りの分割数を 6 に
draw_radar_graph(0, 0, values, fill: false) # 塗りつぶしなし
draw_radar_graph(0, 0, values, opacity: 255) # 塗りつぶしの不透明度変更1
draw_radar_graph(0, 0, values, opacity: 48) # 塗りつぶしの不透明度変更2
draw_radar_graph(0, 0, values, gradient: false) # グラデーションなし
draw_radar_graph(0, 0, values, unit: "%") # 通常
draw_radar_graph(0, 0, values, antialias: false) # アンチエイリアスなし
draw_radar_graph(0, 0, values, expand: true) # 上下幅を増加
draw_radar_graph(0, 0, values, captions: ary, expand: true) # 上下幅を増加(文字)
描画設定の一覧
option
- title <デフォルト:"">
- グラフのタイトル(中央に描画される)。Bitmapを指定した場合、そのビットマップを表示する。
- captions <デフォルト:[]>
- 各頂点に表示する項目名(キャプション)の配列。配列の要素にBitmapを入れた場合、そのビットマップを表示する。
- draw_value <デフォルト:true>
- 数値を描画するかどうか。
- unit <デフォルト:"">
- 数値に付加する単位(文字列)。例えば"%"などを指定する。
- radius <デフォルト:48>
- レーダーの半径。
- font_size <デフォルト:radiusの1/3>
- キャプション、数値、グラフタイトルなどの文字サイズ。
- cap_width <デフォルト:radiusの2/3>
- キャプションの最大幅。文字サイズと合わせて、デフォルトは全角2文字相当を想定している。
- expand <デフォルト:false>
- レーダーグラフの上下幅を拡張する。
- min <デフォルト:valuesの最小値>
- レーダーの最小値(中心点での値)。実際の最小値より大きい場合(設定値は 0 だが values に -10 が含まれる、など)はその最小値に修正される。
- max <デフォルト:valuesの最大値>
- レーダーの最大値(各頂点での値)。実際の最大値より小さい場合(設定値は 100 だが values に 120 が含まれる、など)はグラフが最大値を突き抜けて描画される。あまりにも大きすぎる場合、グラフが正常に描画されない場合があるので注意。
- mid <デフォルト:maxとminの平均>
- レーダーグラフの色の基準値。不正な値(minとmaxの間にない)はデフォルトに修正される。詳細は後述。
- step <デフォルト:4>
- 目盛線の分割数。
- angle <デフォルト:0.25>
- 開始角度(単位は「回転数」)。0だと右端から始まり、数値が大きくなると反時計回りに回転する。0.25で上が開始点、0.5で左が開始点、0.75で下が開始点になる。
- clockwise <デフォルト:true>
- 真の場合、values と captions の値は時計回りで配置される。
- gradient <デフォルト:true>
- グラデーション描画を行う。偽の場合colors[:mid]の一色のみが使われ、処理は非常に軽くなる。
- fill <デフォルト:true>
- レーダーの内側を塗りつぶす。偽の場合枠線だけが描画され、処理は非常に軽くなる。
- opacity <デフォルト:128>
- 塗りつぶしの不透明度。
- antialias <デフォルト:true>
- レーダーグラフを描画する直線をアンチエイリアス描画する。偽にすると見た目が悪くなるが少し処理が軽くなる。
- colors <デフォルト:Graph_Colors>
- グラフ描画に使う色を定義したハッシュ。詳細は後述。
colors
レーダーグラフの描画に使う色を指定します。
設定項目は下記のとおりです。
- max
- 最大値(グラフの各頂点)での色。デフォルトでは赤。数値を描画する場合、数値の色もこれに合わせられる。
- min
- 最小値(グラフの中心点)での色。デフォルトでは青。数値を描画する場合、数値の色もこれに合わせられる。
- mid
- 基準値(options[:mid])での色。デフォルトでは緑。基準値は自由に設定できるが、数値が基準値よりも最大(:max)に近い場合は max と mid の中間の色になり、数値が基準値よりも最小(:min)に近い場合は min と mid の中間の色で描画される。
- frame
- グラフ外枠の色。デフォルトでは明るめの灰色。
- shadow
- グラフ枠の影の色。デフォルトでは黒。
- scale
- 目盛線の色。デフォルトでは水色。
- caption
- 項目名の色。デフォルトでは白。
描画される領域について
描画領域の幅は (radius + cap_width)×2
描画領域の高さは
expandオプションが偽の場合:(radius + font_size)×2
expandオプションが真の場合:(radius + font_size×2)×2
となります。radius, cap_width, font_size のいずれも設定せずデフォルトを利用する場合、expandが偽の場合は 160*128、真の場合は160*160になります。
- こんにちは。不具合を発見したのでご報告いたします。 LNS000 組み込み拡張 LNS010 Input拡張 LNS100 プリセット拡張 LNS102 マウス操作 LNS140 マップ/キャラ拡張 の5つを導入した状態で、マップ画面でマウスカーソルをゲームウインドウの外側で大きく動かすなどすると、「 スクリプト 'LNS 140 マップ/キャラ拡張' の 980 行目で IndexError が発生しました。 index -1 too small for array; minimum: 0 」というエラーメッセージが表示され、ゲームが終了してしまいます。 スクリプトは全て最新で、内容は改変していません。 -- 2022-07-26 01:29:40
- 確認が遅れましたが、対応修正しました。正確には「既に対応済みであったがアップロードを忘れていた」という状態でした…… -- 2022-11-01 15:39:07
- 対応ありがとうございます!しかし LNS000, 010, 100, 102, 140 の5つを入れた状態で起動直後に「スクリプト 'LNS140 マップ/キャラ拡張' の 1719 行目で NameError が発生しました。 undefined method 'lns102_dash?' for class 'Game_Player'」と表示され、終了します。 -- 2022-12-24 16:39:35
最終更新:2021年08月28日 01:56