YKLook説明書 クラス解説 YKLookCanvas 機能別   ABC
ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  

YKLookCanvas


グラフィック描画・操作用のGUIオブジェクトです。
レイヤー機能やマウスドラッグ等でのラバーバンド表示機能、任意領域に個別のツールチップ表示機能もあります。

グラフィック座標は整数で表し、左上が原点 (0,0) です。
右下へ行くほど数値が大きくなります。
単位はピクセルです。

このクラスを使うときは、 swingcanvas をロードしてください。

require 'yklook/swing'
require 'yklook/swingcanvas'

注意: このクラスは追加機能です。当社ライセンスに付属します。




クラスメソッド:   new   yk_find_objects   yk_find_objects_frame   yk_look   yk_look_frame
インスタンスメソッド:   yk_add_click_rect   yk_add_click_rect   yk_add_tooltip_rect   yk_clear   yk_clear_click_rect   yk_clear_rect   yk_clear_tooltip_rect   yk_clip_rect   yk_copy_area   yk_draw_arc   yk_draw_graph   yk_draw_image   yk_draw_image   yk_draw_image   yk_draw_image   yk_draw_line   yk_draw_oval   yk_draw_pie   yk_draw_polygon   yk_draw_polygon   yk_draw_polyline   yk_draw_polyline   yk_draw_rect   yk_draw_rect_3d   yk_draw_rect_round   yk_draw_string   yk_draw_string   yk_draw_string   yk_fill_arc   yk_fill_oval   yk_fill_polygon   yk_fill_polygon   yk_fill_rect   yk_fill_rect_3d   yk_fill_rect_round   yk_set_click_cursor   yk_set_clip   yk_set_color   yk_set_font   yk_set_layer   yk_set_listener   yk_set_paint_mode   yk_set_stroke   yk_set_track_mode   yk_set_xor_mode   yk_translate
その他の項目: なし


 Object (Ruby 組み込みのクラス。すべてのオブジェクトのスーパークラス)
   ┃
   ┗ YKLookSwingBase (YKLook のすべてのGUIオブジェクトの共通クラス)
      ┃
      ┗ YKLookCompoent (YKLook のGUI表示部品の共通クラス)
         ┃
         ┗ YKLookCanvas (このクラス)


new()  
new( width , height )

インスタンスを生成します。
引数の width は整数で、表示領域の幅を指定します。
引数の height は整数で、表示領域の高さを指定します。
単位はいずれもピクセルです。

c = YKLookCanvas.new( 400, 300 )

表示領域のサイズを指定せずにインスタンスを生成したときは、表示する前に YKLookCompoent#yk_set_preferred_size() 等(このクラスのスーパークラスから継承しているメソッド)で表示領域のサイズを指定してください。

c = YKLookCanvas.new()
c.yk_set_preferred_size( 400, 300 )




yk_find_objects()  
yk_find_objects( tagname )
yk_find_objects( tagname , tagno )

YKLookSwingBase.yk_find_objects の説明をご覧ください。




yk_find_objects_frame( frame )  
yk_find_objects_frame( frame , tagname )
yk_find_objects_frame( frame , tagname , tagno )

YKLookSwingBase.yk_find_objects_frame の説明をご覧ください。




yk_look( tagname )  
yk_look( tagname , tagno )

YKLookSwingBase.yk_look の説明をご覧ください。




yk_look_frame( frame , tagname )  
yk_look_frame( frame , tagname , tagno )

YKLookSwingBase.yk_look_frame の説明をご覧ください。



呼び出し形式[1]
yk_add_click_rect( x , y , w , h , name )

マウスクリックのイベントが発生したときにプログラムにコールバックする領域を追加します。
このメソッドで指定した領域のみ、マウスクリック時のコールバックが有効になります。

引数の x y w h は、有効領域を示す長方形です。
単位はピクセルです。

引数の name は文字列で、この領域に付ける名前です。
プログラムのコールバック処理で、複数の領域を名前で識別する必要があるときに便利です。
name は必要なければ nil を指定するか、引数自体を省略してください。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。

注意: マウスクリックは、 yk_set_listener() メソッドにてマウスクリック時のコールバック用メソッドが指定されているときのみ有効です。
ただし、 yk_set_track_mode() の監視形式が 'move' のときのマウスクリックは、トラッキング用のイベントとみなします。




呼び出し形式[2]
yk_add_click_rect( x , y , w , h , name , text )

マウスクリック時のコールバック有効領域に、同時にツールチップも付けるためのメソッドです。
内部的には、以下のふたつのメソッドを実行したものと同じです。
yk_add_click_rect( x , y , w , h , name ) yk_add_tooltip_rect( x , y , w , h , text )
注意: マウスクリックは、 yk_set_listener() メソッドにてマウスクリック時のコールバック用メソッドが指定されているときのみ有効です。
ただし、 yk_set_track_mode() の監視形式が 'move' のときのマウスクリックは、トラッキング状態とみなします。




yk_add_tooltip_rect( x , y , w , h , text )  

任意領域にツールチップを設定します。
引数の x y w h は、ツールチップの表示領域を示す長方形です。
引数の text はツールチップ文字列です。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_clear()  

表示領域をすべて消去します。
具体的には、表示領域全体を背景色で塗りつぶします。




yk_clear_click_rect()  

マウスクリックのイベントが発生したときにプログラムにコールバックするように設定している領域をすべて未設定にします。




yk_clear_rect( x , y , w , h )  

指定範囲の表示内容を消去します。
消去範囲を長方形で表します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

canvas.yk_clear_rect( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_clear_tooltip_rect()  

任意領域に設定しているツールチップをすべて消去します。




yk_clip_rect( x , y , w , h )  

クリッピング領域を指定します。
指定範囲を長方形で表します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。
すでにクリッピングが指定されているときは、その領域と今回指定した領域の重なっている部分だけがクリッピング領域になります。

canvas.yk_clip_rect( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_copy_area( x , y , w , h , dx , dy )  

領域をコピーします。
引数の x y w h は、コピー元を示す長方形の領域です。
引数の dx dy は、コピー先までの相対座標です。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_draw_arc( x , y , w , h , start , extent , closure )  

円弧を描画します。
円弧のもとになる円に外接する長方形が引数になります。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

引数の start は整数で円弧の開始位置を指定します。
単位は度( 0 360 )で、反時計回りになります。
開始位置の目安は以下のとおりです。
指定 意味
0 もとになる円周の右端
90 もとになる円周の上端
180 もとになる円周の左端
270 もとになる円周の下端

引数の extent は整数で円弧の大きさを指定します。
単位は度( 0 360 )で、反時計回りになります。

引数の closure は文字列で円弧の両端を閉じる方法を指定します。
指定 意味
'chord' 両端を直線で結ぶ(いわゆる弦)
'pie' 各端を円の中心に結ぶ(パイやピザを切った形)
'open' 閉じない(開いたまま)
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では先頭の1文字だけを見ています。

canvas.yk_set_color( 'red' )
canvas.yk_draw_arc( 10, 20, 30, 40, 50, 60, 'p' )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_draw_graph( graph , x , y )  

各種グラフを描画します。
引数の graph YKLookGraphBar 等のグラフ表示情報を保持しているオブジェクトを指定します。
引数の x y は整数で左上の座標を指定します。

nam = [ 'data1', 'data2, 'data3' ]
val = [ 10, 20, 30 ]
bar = YKLookGraphBar.new( 120, 100 )
bar.yk_set_item_data( nam, val )
canvas.yk_draw_graph( bar, 40, 50 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




呼び出し形式[1]
yk_draw_image( image )

画像イメージを描画します。
引数の image YKLookImage クラスのオブジェクトです。
描画位置は、以前に描画した画像イメージの隣になります。
初めての描画のときは、表示領域全体の中央の位置から描画します。

img = YKLookImage.yk_from_file( 'image.gif' )
canvas.yk_draw_image( img )




呼び出し形式[2]
yk_draw_image( image , x , y )

画像イメージを描画します。
引数の image YKLookImage クラスのオブジェクトです。
引数の x y は整数で、描画する画像イメージの左上の座標を指定します。

img = YKLookImage.yk_from_file( 'image.gif' )
canvas.yk_draw_image( img, 10, 20 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。

img = YKLookImage.yk_from_file( 'image.gif' )
canvas.yk_draw_image( img, 'P30', 40 )




呼び出し形式[3]
yk_draw_image( image , x , y , pos )

画像イメージを描画します。
pos 以外の引数については、前述の説明をご覧ください。
pos は、 x y で示された座標が、今回描画する画像イメージのどの場所になるべきなのかを指定します。
pos は常に2文字の文字列で、1文字目がX座標の場所を指定し、2文字目がY座標の場所を指定します。

pos の1文字目(X座標の場所)は以下の文字の中から指定してください。
指定 意味
'L' 今回描画する画像イメージの左端
'C' 今回描画する画像イメージの中央
'R' 今回描画する画像イメージの右端
例えば 'L' を指定すると、今回描画する画像イメージの左端が、引数 x の値になるように表示します。
言い方を換えると、引数 x の値は、画像イメージの左端を指定したことになります。

pos の2文字目(Y座標の場所)は以下の文字の中から指定してください。
指定 意味
'T' 今回描画する画像イメージの上端
'C' 今回描画する画像イメージの中央
'B' 今回描画する画像イメージの下端
例えば 'T' を指定すると、今回描画する画像イメージの上端が、引数 y の値になるように表示します。
言い方を換えると、引数 y の値は、画像イメージの上端を指定したことになります。

英字の大文字小文字はどちらでも受け付けます。
pos のデフォルトは 'LT' です。
このとき、引数 x y は、画像イメージの左上の座標を意味します。

img = YKLookImage.yk_from_file( 'image.gif' )
canvas.yk_draw_image( img, 10, 20, 'CT' )
canvas.yk_draw_image( img, 'P30', 40, 'LT' )




呼び出し形式[4]
yk_draw_image( image , x , y , pos , width , height )

画像イメージを描画します。
width height 以外の引数については、前述の説明をご覧ください。
width height は、それぞれ描画する幅と高さを指定します。
指定サイズに画像を拡大・縮小して描画します。
指定する値が整数のときは、その数字の単位をピクセルとみなします。
指定する値が実数のときは、もとの画像の幅または高さとの比率とみなします。
いずれかの値が nil のときは、もう一方の値に合わせて自動的に変化し、画像の縦横比が同じになるような値に自動的に調整します。
両方の値が nil のときは、もとの画像サイズのまま描画します。

例1
canvas.yk_draw_image( img, 10, 20, 'LT', 100, nil )
この例では、幅を 100 ピクセルで描画します。高さは、縦横比が同じになるように自動調整されます。

例2
canvas.yk_draw_image( img, 10, 20, 'LT', 0.5, 0.5 )
この例では、幅と高さをもとの画像サイズのそれぞれ半分にします。




yk_draw_line( x1 , y1 , x2 , y2 )  

直線を描画します。
引数の x1 y1 は整数で開始点の座標を指定します。
引数の x2 y2 は整数で終了点の座標を指定します。

canvas.yk_set_color( 'red' )
canvas.yk_draw_line( 10, 20, 30, 40 )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




yk_draw_oval( x , y , w , h )  

楕円を描画します。
楕円に外接する長方形が引数になります。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_draw_oval( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_draw_pie( x , y , d , values )  
yk_draw_pie( x , y , d , values , names , face_colors )
yk_draw_pie( x , y , d , values , names , face_colors , value_limit , name_limit , sort_num , str_colors , line_color )

円グラフを描画します。
引数の x y は整数で左上の座標を指定します。
引数の d は整数で円グラフの直径を指定します。単位はピクセルです。
引数の values は配列で、要素は整数または実数です。
この値が円グラフのもとになるデータです。

引数の names とそれ以降は省略できます。

引数の names は配列で、要素は文字列です。
この文字列が、 values の各要素に対応する名前になります。
この配列要素内に、文字列の代わりに nil を指定すると、名前を表示しません。
また、この配列の要素数が values より少ないときは、足りない部分の名前は表示しないものとして扱います。
デフォルトでは空の配列(要素数が0の配列)になり、名前を表示しません。

引数の face_colors は配列で、円グラフの各要素ごとの色を指定します。
色の指定方法は、 YKLookColor.new() の引数と同じです。
face_color の要素数が、 values よりも少ないときは、 face_color で指定された色を繰り返して使います。
デフォルトでは空の配列(要素数が0の配列)になり、このときはすべての要素に対して白が指定されたものとして扱います。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。

引数の value_limit は整数で、円グラフ上にパーセント値を文字列で表示するかどうかの制限値になります。
グラフ上の比率がこの値以上のときにその数値を文字列でパーセント表示します。
デフォルトは 5 です。
このとき、比率が5パーセント以上のものについてはその数値を表示し、5パーセント未満のものは数値の表示をおこないません。
数値を表示したくないときは、この引数に 101 またはそれ以上の整数を指定してください。
いずれにしても、グラフ自体は表示します。

引数の name_limit は整数で、引数 names で指定された名前を円グラフ上に表示するかどうかの制限値になります。
グラフ上の比率がこの値以上のときにその名前を表示します。
デフォルトは 10 です。
このとき、比率が 10 パーセント以上のものについてはその名前を表示し、 10 パーセント未満のものは名前の表示をおこないません。
名前を表示したくないときは、この引数に 101 またはそれ以上の整数を指定してください。
いずれにしても、グラフ自体は表示します。

引数の sort_num は整数で、引数 values の値の降順に並べ替えて表示したり、順位の低いものをひとつにまとめて表示したりするときの指定です。
デフォルトは 0 で、このときは並べ替えずに引数 values の順番どおりにすべて表示します。
例えば引数 values の要素数が8で sort_num の値が3の場合は、 values の数値の大きい順に3位までをその順に表示し、4位以下のものをひとつにまとめて表示します。

並べ替えはするが、まとめずにすべてのデータを表示したいときは、 sort_num の値を values の要素数と同じ値にしてください。

まとめたとき、その部分の名前の表示は、デフォルトでは表示しません。
引数 names の要素数が引数 values の要素数より多いとき、それを「まとめたときの名前」として扱います。

v = [ 60, 70, 80, 90, 100 ]
n = [ 'typeA', 'typeB', 'typeC', 'typeD', 'typeE', 'misc' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 3 )
この例では、 typeA typeB をまとめて misc として表示します。
円グラフの表示順は typeE - typeD - typeC - misc になります。

同じ値のデータが複数存在し、それを降順に並べ替えたときに、 sort_num で指定した個数の前後をまたがるような場合は以下のようになります。

引数 str_colors は配列で、パーセント値や名前を表示するときの文字色と文字の背景色を指定します。
デフォルトでは文字色が黒で、背景色は未指定(何もしない)です。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
s = [ 'black' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 0, s )

背景色も指定するときは、以下のようになります。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
s = [ 'black', 'white' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 0, s )
この例では、文字色を黒に、背景色を白にしています。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 0, [] )
この例のように空の配列(要素数が0の配列)を指定すると、デフォルトと同じ意味(文字色は黒、背景色は未指定)になります。

文字のフォントを指定するには、 yk_set_font() を使ってください。

引数 line_color はグラフの円周やグラフ内の境界線を描画するときの色を指定します。
デフォルトは黒で描画します。
nil を指定すると描画しません。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 0, [], 'red' )
この例では、線の色を赤にしています。

v = [ 70, 80, 90 ]
n = [ 'typeA', 'typeB', 'typeC' ]
f = [ '#ffccff', '#ffcccc', '#ccffcc' ]
canvas.yk_draw_pie( 10, 20, 30, v, n, f, 5, 10, 0, [], nil )
この例では、線を描画しません。




呼び出し形式[1]
yk_draw_polygon( xy )

多角形を描画します。
引数で指定された座標を順につなぎ、連続した線を描画します。
最初の座標と最後の座標をつなぐ線を自動的に描画します。
引数の xy は配列で、その要素はさらに配列です。
この配列の要素がふたつの整数で、それぞれX座標とY座標を表します。

a = [10,20]
b = [30,40]
c = [50,60]
canvas.yk_set_color( 'red' )
canvas.yk_draw_polygon( [a,b,c] )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




呼び出し形式[2]
yk_draw_polygon( x , y )

多角形を描画します。
引数で指定された座標を順につなぎ、連続した線を描画します。
最初の座標と最後の座標をつなぐ線を自動的に描画します。
引数の x は配列で、その要素はX座標を表す整数です。
引数の y は配列で、その要素はY座標を表す整数です。
x y の配列の要素数は一致していなければなりません。

x = [10,30,50]
y = [20,40,60]
canvas.yk_set_color( 'red' )
canvas.yk_draw_polygon( x, y )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




呼び出し形式[1]
yk_draw_polyline( xy )

連続した線を描画します。
引数の xy は配列で、その要素はさらに配列です。
この配列の要素がふたつの整数で、それぞれX座標とY座標を表します。

a = [10,20]
b = [30,40]
c = [50,60]
canvas.yk_set_color( 'red' )
canvas.yk_draw_polyline( [a,b,c] )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




呼び出し形式[2]
yk_draw_polyline( x , y )

連続した線を描画します。
引数の x は配列で、その要素はX座標を表す整数です。
引数の y は配列で、その要素はY座標を表す整数です。
x y の配列の要素数は一致していなければなりません。

x = [10,30,50]
y = [20,40,60]
canvas.yk_set_color( 'red' )
canvas.yk_draw_polyline( x, y )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




yk_draw_rect( x , y , w , h )  

長方形を描画します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_draw_rect( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_draw_rect_3d( x , y , w , h , d , r )  

立体的な長方形を描画します。
影の部分を、少し暗い色で表示します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。
引数の d は整数で深さ(奥行き)を指定します。単位はピクセルです。
引数の r true または false で凸凹を指定します。
r true のときは、飛び出したように見えるように表示します。
r false のときは、へこんだように見えるように表示します。

canvas.yk_set_color( 'green' )
canvas.yk_draw_rect_3d( 10, 20, 30, 40, 5, false )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_draw_rect_round( x , y , w , h , dw , dh )  

角を丸めた長方形を描画し塗りつぶします。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。
引数の h は整数で長方形の高さを指定します。
引数の dw は整数で角を丸める横方向の長さを指定します。
引数の dh は整数で角を丸める縦方向の長さを指定します。
引数の単位はいずれもピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_draw_rect_round( 10, 20, 30, 40, 5, 6 )
この例では、 30 ピクセル分の横幅のうち、両端の 5 ピクセルがそれぞれ丸くなるので、残りの 20 ピクセルが直線になります。
つまり、引数の dw dh は、角の弧を描く楕円の半径を表しています。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




呼び出し形式[1]
yk_draw_string( str )

文字列を描画します。
引数の str は文字列で、これを描画します。
タブ文字や改行文字などの制御文字は指定できません(空白は可)。
描画位置は、以前に描画した文字列の隣になります。
初めての描画のときは、グラフィック描画領域の中央の位置から描画します。

canvas.yk_set_color( 'red' )
canvas.yk_draw_string( 'abc' )

フォントを指定するときは yk_set_font() をお使いください。




呼び出し形式[2]
yk_draw_string( str , x , y )

文字列を描画します。
引数の str は文字列で、これを描画します。
タブ文字や改行文字などの制御文字は指定できません(空白は可)。
引数の x y は整数で、描画する文字列の左上の座標を指定します。

canvas.yk_set_color( 'red' )
canvas.yk_draw_string( 'abc', 10, 20 )

x には、以下の文字列を指定することもできます。
指定 意味
'CL' グラフィック描画領域の左側。実際の値は -1
'CC' グラフィック描画領域の中央
'CR' グラフィック描画領域の右側
'CP'+ 数字 グラフィック描画領域の幅のパーセント値。
'CP0' が左端。 'CP50' が中央。 'CP100' が右側
'SL' 以前に描画した文字列の左側
'SX' 以前の yk_draw_string() の引数 x
'SC' 以前に描画した文字列の中央
'SW' 以前に描画した文字列の右側。 SN/SR も同じ
'SN' 以前に描画した文字列の右側。 SW/SR も同じ
'SR' 以前に描画した文字列の右側。 SW/SN も同じ
'SP'+ 数字 以前に描画した文字列の表示幅の範囲のパーセント値。
'SP0' が文字列の左端。 'SP50' が中央。 'SP100' が右側
'IL' 以前に描画した画像イメージの左側
'IX' 以前の yk_draw_image() の引数 x
'IC' 以前に描画した画像イメージの中央
'IR' 以前に描画した画像イメージの右側
'IP'+ 数字 以前に描画した画像イメージの表示幅の範囲のパーセント値。
'IP0' が画像イメージの左端。 'IP50' が中央。 'IP100' が右側

英字の大文字小文字はどちらでも受け付けます。
パーセント値を指定する CP/SP/IP 以外のものも、英字の後に数字を付加できます。このときの値はピクセルで、それぞれの示す座標値に加算します。
いずれの場合も、英字の後に付加する数値が 0 のときは、その数値を省略できます。
CP/SP/IP 以外のピクセルで数値を指定するときはマイナスの値も指定できます。

以前に描画しているものを基準に座標を指定しているにもかかわらず、今回が初めての描画のときは、グラフィック描画領域の幅の中央に表示します。

y には、以下の文字列を指定することもできます。

指定 意味
'CT' グラフィック描画領域の上側。実際の値は -1
'CC' グラフィック描画領域の中央
'CB' グラフィック描画領域の下側
'CP'+ 数字 グラフィック描画領域の高さのパーセント値。
'CP0' が上端。 'CP50' が中央。 'CP100' が下側
'ST' 以前に描画した文字列で使ったフォントの最大アセント位置(最上端)
'SA' 以前に描画した文字列で使ったフォントのアセント位置(上端)
'SC' 以前に描画した文字列で使ったフォントの最大高さの中間位置
'SM' 以前に描画した文字列で使ったフォントの高さの中間位置
'SL' 以前に描画した文字列で使ったフォントの基準線の位置
'SD' 以前に描画した文字列で使ったフォントのディセント位置(下端)
'SB' 以前に描画した文字列で使ったフォントの最大ディセント位置(最下端)
'SY' 以前の yk_draw_string() の引数 y
'SH' 以前の yk_draw_string() の引数 y + フォントの高さ
'SN' 以前の yk_draw_string() の引数 y + 改行したときの位置
'IT' 以前に描画した画像イメージの上側
'IY' 以前の yk_draw_image() の引数 y
'IC' 以前に描画した画像イメージの中央
'IB' 以前に描画した画像イメージの下側
'IP'+ 数字 以前に描画した画像イメージの表示高さの範囲のパーセント値。
'IP0' が画像イメージの上端。 'IP50' が中央。 'IP100' が下側

英字の大文字小文字はどちらでも受け付けます。
パーセント値を指定する CP/IP 以外のものも、英字の後に数字を付加できます。このときの値はピクセルで、それぞれの示す座標値に加算します。
いずれの場合も、英字の後に付加する数値が 0 のときは、その数値を省略できます。
CP/IP 以外のピクセルで数値を指定するときはマイナスの値も指定できます。

以前に描画しているものを基準に座標を指定しているにもかかわらず、今回が初めての描画のときは、グラフィック描画領域の高さの中央に表示します。

x y のデフォルト値はそれぞれ 'SN' 'SY' です。
この指定は、以前に描画した文字列の隣になり、これは座標を指定しない yk_draw_string( str ) と同じです。

canvas.yk_set_color( 'red' )
canvas.yk_draw_string( 'xyz', 'CP30', 40 )

フォントを指定するときは yk_set_font() をお使いください。




呼び出し形式[3]
yk_draw_string( str , x , y , pos )

文字列を描画します。
pos 以外の引数については、前述の説明をご覧ください。
pos は、 x y で示された座標が、今回描画する文字列のどの場所になるべきなのかを指定します。
pos は常に2文字の文字列で、1文字目がX座標の場所を指定し、2文字目がY座標の場所を指定します。

pos の1文字目(X座標の場所)は以下の文字の中から指定してください。
指定 意味
'L' 今回描画する文字列の左端
'C' 今回描画する文字列の中央
'R' 今回描画する文字列の右端
例えば 'L' を指定すると、今回描画する文字列の左端が、引数 x の値になるように表示します。言い方を換えると、引数 x の値は、今回描画する文字列の左端を指定したことになります。

pos の2文字目(Y座標の場所)は以下の文字の中から指定してください。
指定 意味
'T' 今回描画する文字列で使うフォントの最大アセント位置(最上端)
'A' 今回描画する文字列で使うフォントのアセント位置(上端)
'C' 今回描画する文字列で使うフォントの最大高さの中間位置
'M' 今回描画する文字列で使うフォントの高さの中間位置
'O' 今回描画する文字列で使うフォントの半行分の位置
'L' 今回描画する文字列で使うフォントの基準線の位置
'D' 今回描画する文字列で使うフォントのディセント位置(下端)
'B' 今回描画する文字列で使うフォントの最大ディセント位置(最下端)
例えば 'T' を指定すると、今回描画する文字列の最上端が、引数 y の値になるように表示します。言い方を換えると、引数 y の値は、今回描画する文字列の最上端を指定したことになります。

英字の大文字小文字はどちらでも受け付けます。
pos のデフォルトは 'LT' です。
このとき、引数 x y は、文字列の左上の座標を意味します。

canvas.yk_set_color( 'red' )
canvas.yk_draw_string( 'abc', 10, 20, 'CT' )
canvas.yk_draw_string( 'xyz', 'CP30', 40, 'LT' )

フォントを指定するときは yk_set_font() をお使いください。




yk_fill_arc( x , y , w , h , start , extent , closure )  

円弧を描画し塗りつぶします。
円弧のもとになる円に外接する長方形が引数になります。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

引数の start は整数で円弧の開始位置を指定します。
単位は度( 0 360 )で、反時計回りになります。
開始位置の目安は以下のとおりです。
指定 意味
0 もとになる円周の右端
90 もとになる円周の上端
180 もとになる円周の左端
270 もとになる円周の下端

引数の extent は整数で円弧の大きさを指定します。
単位は度( 0 360 )で、反時計回りになります。

引数の closure は文字列で円弧の両端を閉じる方法を指定します。
指定 意味
'chord' 両端を直線で結ぶ(いわゆる弦)
'pie' 各端を円の中心に結ぶ(パイやピザを切った形)
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では先頭の1文字だけを見ています。

canvas.yk_set_color( 'red' )
canvas.yk_fill_arc( 10, 20, 30, 40, 50, 60, 'p' )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_fill_oval( x , y , w , h )  

楕円を描画し塗りつぶします。
楕円に外接する長方形が引数になります。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_fill_oval( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




呼び出し形式[1]
yk_fill_polygon( xy )

多角形を描画し塗りつぶします。
引数で指定された座標を順につなぎ、連続した線を描画します。
最初の座標と最後の座標をつなぐ線を自動的に描画し内部を塗りつぶします。
引数の xy は配列で、その要素はさらに配列です。
この配列の要素がふたつの整数で、それぞれX座標とY座標を表します。

a = [10,20]
b = [30,40]
c = [50,60]
canvas.yk_set_color( 'red' )
canvas.yk_fill_polygon( [a,b,c] )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




呼び出し形式[2]
yk_fill_polygon( x , y )

多角形を描画し塗りつぶします。
引数で指定された座標を順につなぎ、連続した線を描画します。
最初の座標と最後の座標をつなぐ線を自動的に描画し内部を塗りつぶします。
引数の x は配列で、その要素はX座標を表す整数です。
引数の y は配列で、その要素はY座標を表す整数です。
x y の配列の要素数は一致していなければなりません。

x = [10,30,50]
y = [20,40,60]
canvas.yk_set_color( 'red' )
canvas.yk_fill_polygon( x, y )

X座標とY座標には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。




yk_fill_rect( x , y , w , h )  

長方形を描画し塗りつぶします。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_fill_rect( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_fill_rect_3d( x , y , w , h , d , r )  

立体的な長方形を描画し塗りつぶします。
影の部分を、少し暗い色で表示します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。
引数の d は整数で深さ(奥行き)を指定します。単位はピクセルです。
引数の r true または false で凸凹を指定します。
r true のときは、飛び出したように見えるように表示します。
r false のときは、へこんだように見えるように表示します。

canvas.yk_set_color( 'green' )
canvas.yk_fill_rect_3d( 10, 20, 30, 40, 5, false )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_fill_rect_round( x , y , w , h , dw , dh )  

角を丸めた長方形を描画し塗りつぶします。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。
引数の h は整数で長方形の高さを指定します。
引数の dw は整数で角を丸める横方向の長さを指定します。
引数の dh は整数で角を丸める縦方向の長さを指定します。
引数の単位はいずれもピクセルです。

canvas.yk_set_color( 'red' )
canvas.yk_fill_rect_round( 10, 20, 30, 40, 5, 6 )
この例では、 30 ピクセル分の横幅のうち、両端の 5 ピクセルがそれぞれ丸くなるので、残りの 20 ピクセルが直線になります。
つまり、引数の dw dh は、角の弧を描く楕円の半径を表しています。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_set_click_cursor( cursor )  

マウスクリック時のコールバック有効領域内にマウスカーソルがあるときのそのマウスカーソルの外観を指定します。
引数の cursor は、 YKLookCursor クラスのオブジェクトまたは文字列または nil を指定します。
文字列を指定したときは、内部的には以下の処理と同じです。
c = YKLookCursor.new( 文字列 ) yk_set_click_cursor( c ) nil を指定したときは、画面上の階層構造に従います。

注意: マウスクリックは、 yk_set_listener() メソッドにてマウスクリック時のコールバック用メソッドが指定されているときのみ有効です。




yk_set_clip( x , y , w , h )  

クリッピング領域を指定します。
指定範囲を長方形で表します。
引数の x y は整数で左上の座標を指定します。
引数の w は整数で長方形の幅を指定します。単位はピクセルです。
引数の h は整数で長方形の高さを指定します。単位はピクセルです。
すでにクリッピングが指定されていても、それを破棄して今回指定した領域をクリッピング領域とします。

canvas.yk_set_clip( 10, 20, 30, 40 )

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。
w h にも同様に特別な文字列を指定することができます。
このときの w h の意味は幅と高さではなく絶対座標とみなします。




yk_set_color( color )  

色を指定します。
これ以降、この色がデフォルトになります。
各種描画メソッドでの色はこの色になります。
color の指定方法は、 YKLookColor.new() の引数と同じです。

注意: このクラスのスーパークラスに YKLookComponent#yk_set_fore() というメソッドがありますが、これをグラフィック描画の色指定に使うことはできません。




yk_set_font( font )  

フォントを指定します。
yk_draw_string() メソッド等で文字列を描画するときのデフォルトのフォントになります。
引数の font は、 nil または YKLookFont オブジェクトを指定します。
nil のときは、画面上の階層構造に従います。




yk_set_layer( number )  

レイヤー番号を指定します。
以降の描画は、指定されたレイヤーで実行されます。
引数の number は整数で、レイヤー番号を指定します。
レイヤー番号のデフォルト値は 0 です。




yk_set_listener( click )  
yk_set_listener( click , track )

コールバック用のメソッドを文字列またはシンボルで指定します。
nil を指定すると、コールバック用メソッドを未指定にします。
名前の先頭が 'yk' で始まるものは指定できません。
引数の click はマウスクリック時のコールバック用メソッドを指定します。
引数の track はトラッキング時のコールバック用メソッドを指定します。
track の引数自体を省略したときは、 nil を指定したものとみなします。

コールバック用のメソッドは、プログラム製作者が YKLookMain YKLookMainFrame のサブクラスに定義する必要があります。

コールバック用のメソッドには引数がひとつあります。
マウスクリック時のコールバック用メソッドの引数は、 YKLookEventMouseClick クラスのオブジェクトです。
トラッキング時のコールバック用メソッドの引数は、 YKLookEventMouseTrack クラスのオブジェクトです。

注意: マウスクリック時にコールバックするには、 yk_add_click_rect() メソッドにてクリックの有効範囲を指定する必要があります。
トラッキング時にコールバックするには、 yk_set_track_mode() メソッドにてトラッキング条件を指定する必要があります。
また、いずれの場合もダブルクリック時にはコールバックしません。




yk_set_paint_mode()  

描画モードを上書きモードにします。
通常はこのモードであり、これがデフォルトです。




yk_set_stroke( size , cap , join )  

線を描画するときの形状を指定します。
引数の size は整数で、線の太さを指定します。単位はピクセルです。

引数の cap は文字列で、線の端の修飾方法を指定します。
以下の中から指定してください。
指定 意味
'square' 線の太さの半分の長さだけ延ばす
'round' 丸める。線の太さに合った半円を付け足す
'butt' 修飾しない
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では、先頭の1文字だけを見ています。

引数の join は文字列で、折れ線の角の部分の加工方法を指定します。
以下の中から指定してください。
指定 意味
'mitter' 角を尖らす
'round' 角を丸める
'bevel' 角を折る
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では、先頭の1文字だけを見ています。

size のデフォルト値は 1 です。
cap のデフォルト値は 's' です。
join のデフォルト値は 'm' です。
cap join は、線が太くないと、画面表示上の効果が見えにくいです。

canvas.yk_set_stroke( 5, 'r', 'r' )




yk_set_track_mode( watch , shape )  
yk_set_track_mode( watch , shape , color )

マウスカーソルをトラッキングするときの条件を指定します。
これは、アプリ利用者のマウス操作によるラバーバンド表示機能の設定です。

引数の watch は監視形式で、下記3種類の中から指定してください。
指定 意味
'drag' マウスドラッグの間だけ監視する。
ドラッグ開始時にトラッキングを開始し、ドラッグ中はラバーバンドを表示し続ける。
ドラッグ終了時にトラッキングを終了し、ラバーバンドを消去し、 YKLookEventMouseTrack イベントを送る。
'move' マウス移動中のときだけ監視する。ドラッグは無視する。
最初のマウスクリックでトラッキングを開始し、マウス移動中はラバーバンドを表示し続ける。以降、マウスクリックのたびに YKLookEventMouseTrack イベントを送る。
このときのクリックは、 yk_add_click_rect() の指定には影響されず、 YKLookEventMouseClick イベントを送らない。
nil
'none'
トラッキング無効
上記以外のときは、 nil を指定したときと同様にトラッキングは無効です。
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では、文字列の場合は先頭の1文字だけを見ています。
watch のデフォルトは nil です。

引数の shape は表示形式で、下記2種類の中から指定してください。
指定 意味
'rect' 長方形のラバーバンドを表示する
'line' 直線のラバーバンドを表示する
上記以外のときは 'rect' を指定したときと同様に長方形を表示します。
英字の大文字小文字はどちらでも受け付けます。
また、 YKLook 内部では、先頭の1文字だけを見ています。
shape のデフォルトは 'r' です。

引数の color はラバーバンドの色を指定します。
color の指定方法は、 YKLookColor.new() の引数と同じです。
color のデフォルトは 'white' です。
具体的には、この色を使って、描画モードを XOR モードにしてラバーバンドを描画しています。
XOR モードについては、 yk_set_xor_mode() の説明をご覧ください。

注意: トラッキング機能は、 yk_set_listener() メソッドにてトラッキング時のコールバック用メソッドが指定されているときのみ有効です。

canvas.yk_set_track_mode( 'd', 'r', 'white' )
この例では、マウスをドラッグしているときに長方形のラバーバンドを表示します。
ドラッグが終わる(利用者がマウスから手を離す)と、コールバック用メソッドが呼び出されます。




yk_set_xor_mode( color )  

描画モードを XOR モードにします。
引数の color は、 XOR 用の色を指定します。
color の指定方法は、 YKLookColor.new() の引数と同じです。

具体的には、「描画前の色」と「描画用のデフォルト指定色」と「 XOR 用の色」の3色を XOR した色が、描画メソッド実行時の各ピクセルの色になります。




yk_translate( x , y )  

原点の座標位置を設定します。

x y には、 yk_draw_string() と同様に特別な文字列を指定することもできます。詳細は yk_draw_string() の説明をご覧ください。



なし



ページ内リンク一覧   スーパークラス   クラスメソッド   インスタンスメソッド   その他の項目  
YKLook説明書 クラス解説 YKLookCanvas 機能別   ABC


Copyright (c) 2003-2010 YorozuKotowariYa Ltd.