[#42454] 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...>

出沢です

22 messages 2006/06/22
[#42455] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/22

From: しん <dezawa@aliadne.net>

[#42456] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42458] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42459] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です

[#42460] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — rubikitch <rubikitch@...> 2006/06/23

From: しん <dezawa@aliadne.net>

[#42461] Re: 多量の正規表現との効率的なマッチのアイデアを、、 — しん <dezawa@...> 2006/06/23

出沢です。

[ruby-list:42355] TkCanvasの座標

From: Masato Ishimoto <i@...>
Date: 2006-06-02 17:24:26 UTC
List: ruby-list #42355
はじめまして。Newbieいしもと といいます。

MacOSX10.4+Ruby1.8.2環境下で、マウスカーソル(tcross)で
キャンバスのX、Y座標を取得するプログラムを作っていま 
す。
2点ほど気になりましたので質問させてください。

1.キャンバスの大きさ(と表示範囲)が指定したものと違う。

 プログラムでは200x200のキャンバスを生成し、その4辺
ギリギリにそれぞれ一本ずつと、各辺を2等分する線を引いて
います。(6本の線で4つの正方形ができている状態)
 ・・・はずなのですが、まず、キャンバスのサイズが206x206
になっています。さらに、表示範囲(?)がずれているのか、左
と上にあるはずの線が表示されません。これは、こういうものなの
でしょうか?それとも私が何か勘違いしているだけでしょうか?


2.生成したline同士の交点とそれを指したカーソルの座標が違 
う。

 キャンバスで交差している点にカーソルを合わせると、Y座標が
1小さい値が表示される気がします。例えば、下記プログラムで
はキャンバス中央の交点は100,100だと思うのですが、カーソルで
は100,99となります。これは何故なのでしょうか?カーソルの問題
?キャンバスの問題?それとも私の問題?

 気になって夜も眠れません。アドバイスいただければ幸いです。
よろしくお願いいたします。

以下、コードです。
____________________
require 'tk'

xp=0
yp=0

root = TkRoot.new( 'bg' => 'black' )
f = TkFrame.new( root )
lbx = TkLabel.new( f ){ text 'x=' }.pack( 'side' => 'left' )
enx = TkLabel.new( f ){ text xp }.pack( 'side' => 'left' )
lby = TkLabel.new( f ){ text 'y=' }.pack( 'side' => 'left' )
eny = TkLabel.new( f ){ text yp }.pack( 'side' => 'left' )
f.pack('side'=>'top')

canvas = TkCanvas.new(root,
                   'bg' => 'pink',
                   'height' => 200,
                   'width' => 200,
                   'cursor' => 'tcross'
                   ).pack('side' => 'top')

x_zero = TkcLine.new( canvas, 0, 0, 200, 0)
x_half = TkcLine.new( canvas, 0, 100, 200, 100)
x_max = TkcLine.new( canvas, 0, 200, 200, 200)
y_zero = TkcLine.new( canvas, 0, 0, 0, 200)
y_half = TkcLine.new( canvas, 100, 0,100, 200)
y_max = TkcLine.new( canvas, 200, 0, 200, 200)
#bind
canvas.bind('Motion',
             proc{|x, y| enx.text=xp=x
                  eny.text=xp=y
                  },'%x %y' )

Tk.mainloop
_____________________
いしもと まさと




In This Thread

Prev Next