マウスのイベントおよびカレントの位置を取得する
[rep [,win]]=xgetmouse([sel])
論理値ベクトル [getmotion, getrelease]
. デフォルト値は [%t, %f]
です
大きさ 3のベクトル, [x,y,ibutton].
イベントが発生した図の番号.
マウスポインタがカレントの図のウインドウ内に位置する場合,
xgetmouse
はrep
に
カレントのポインタの位置(x,y)と値ibutton
を返します.
ibutton
の値は以下のイベントの種類を示します:
マウスの左ボタンが押されました
マウスの中ボタンが押されました
マウスの右ボタンが押されました
マウスの左ボタンがクリックされました
マウスの中ボタンがクリックされました
マウスの右ボタンがクリックされました
マウスの左ボタンがダブルクリックされました
マウスの中ボタンがダブルクリックされました
マウスの右ボタンがダブルクリックされました
マウスの左ボタンが放されました
マウスの中ボタンが放されました
マウスの右ボタンが放されました
ポインタが移動されました
ASCIIコードascii(ibutton)を有するキーが押されました
ASCIIコードascii(-ibutton)を有するキーが放されました
ASCIIコードascii(ibutton-1000)を有するキーがCTRLキーが押されている間に 押されました
グラフィックウインドが閉じられました
警告: 前のバージョンの Scilab (<5.0)では, xgetmouseが入力された時点で マウスクリックのイベントキューをクリアするかどうかを設定するフラグを ユーザが設定できました. このオプションは, Scilab 5.1 で削除されています.
// 矩形選択 clf(); // ウインドウを消去/作成 a=gca();a.data_bounds=[0 0;100 100];//ユーザ座標を設定 xtitle(" drawing a rectangle ") //タイトルを追加 show_window(); //ウインドウを最前面に配置 [b,xc,yc]=xclick(); //ポイントを取得 xrect(xc,yc,0,0) //矩形エンティティを描画 r=gce();// 矩形のハンドル rep=[xc,yc,-1];first=%f; while rep(3)==-1 do // マウスを移動 ... rep=xgetmouse(); xc1=rep(1);yc1=rep(2); ox=min(xc,xc1); oy=max(yc,yc1); w=abs(xc-xc1);h=abs(yc-yc1); r.data=[ox,oy,w,h]; //矩形の原点,幅と高さを変更 first=%f; end | ![]() | ![]() |