日本語プログラミング言語なでしこの公式掲示板

なでしこ1 質問

トップ 新規 検索

2022-08-24 22:33:44

Re②:【解決】イメージ(部品)の特定の位置を注目させ続けたい。

れがちぃ さん

ご教授頂きありがとうございました!
画像の拡大については、画面の移動に気を取られて気づきませんでした!
回答を参考に無事修正出来ました。

ご回答ありがとうございました!


 ああっ、「マウス移動した時」使ってるほんとうの意図は、もしかして四角をマウスに追随させたいんじゃ?! とゆうことにいま気がつきました💦

 その場合は、「マウス移動した時」で四角を描き、「マウス押した時」で画像部分コピーと、分けてイベントを作ります。
 マウス移動する毎に画像の設定し直しが発生するので、毎回ファイルからいちいち画像を設定すると、負荷が大きくまあまあ動きが悪くなるので、裏画面を用意して、バッファからの画像コピーにしたほうがよいです。
#--------------------------------------------------------- 
画像1とはイメージ
これについて
  画像=「./〇〇.png」 
  マウス移動した時は
    裏画面を画像1の0,0へ画像コピー。
    塗りスタイルは「透明」
    四角(マウスX,マウスY,マウスX+100,マウスY+100)
  マウス押した時は
    裏画面を画像1の0,0へ画像コピー。
    クリック地点X=マウスX。
    クリック地点Y=マウスY。
    画像1のクリック地点X,クリック地点Y,100,100を画像2の0,0へ画像部分コピー

裏画面とはイメージ
これについて
  可視はオフ。
  画像=「./〇〇.png」 
#--------------------------------------------------------- 

 あと、うっかりしてたけど、画像後拡大させるバーがあるんですよね~☆
 「拡大機能」を使ってこれを実現させると、画像は見た目だけは拡大されますが、実際のサイズは変わってないんです。
 それで、イメージ部品上の見た目上の座標と画像コピーや四角描画の座標が、ずれちゃいます。
 もし、拡大バーで拡大させた画像から、見た目通りの位置とサイズでキャプチャするなら、「画像リサイズ」で画像そのもののサイズをかえます。
#--------------------------------------------------------- 
●表示拡大
  もし(拡大バーの値)が(前回拡大値)以上ならば
    画像幅=表示初期幅+幅刻み値×拡大バーの値
    画像高=表示初期高さ+高さ刻み値×拡大バーの値
    幅拡大率=(画像1の幅)÷表示初期幅
    高さ拡大率=(画像1の高さ)÷表示初期高さ
  もし(拡大バーの値)が(前回拡大値)未満ならば
    画像幅=画像1のW-幅刻み値×(前回拡大値-拡大バーの値)
    画像高=画像1のH-高さ刻み値×(前回拡大値-拡大バーの値)
    幅拡大値=-幅刻み値×(前回拡大値-拡大バーの値)
    高さ拡大値=-高さ刻み値×(前回拡大値-拡大バーの値)  
  画像1を、画像幅,画像高へ画像リサイズ。
  裏画面を、画像幅,画像高へ画像リサイズ。
#--------------------------------------------------------- 


(編集パスワード送信)

子記事

親記事 (No.1464)
返信した記事(元) (No.1466)

この内容(No.1467)に返信

この内容(No.1467)をダウンロード

この内容(No.1467)のテキスト表示





www.eznavi.net