HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
1029
GANJI座標計算9解決


GANJI

リンク

2006/10/29(Sun) 13:18:40|NO.3141

HSP3.0の勉強と、自分専用の地図ソフトを制作しています。
元画像(地図)をバッファで読み込み、gzoomでscreen0に拡大縮小移動で一部分を表示できるようにまでは出来ました。
これに地図の一部にマークをつけて場所を記憶させたいんですが、
拡大縮小で表示されている画像の一部分が元の画像のどの座標にあたるかを知る方法がわからないんです。
上下移動は十字キーで、拡大縮小はマウスのホイールが動いた分だけgzoomの元画像の範囲にプラスしています。

座標の計算の仕方をお教え下さい。



この記事に返信する


ゆちボン

リンク

2006/10/29(Sun) 14:17:36|NO.3144

かなり荒業ですが、
座標計算をせずにやる方法ならあります。
まず、そのマークしたいところの座標をとります。(拡大しているときの)
そして、拡大率も一緒に保存します。
読み込み時に拡大率もセットすればいいかと思います。

こんな回答ですみません(^^;



GANJI

リンク

2006/10/29(Sun) 16:27:33|NO.3154

回答ありがとうございます。
この方法だとその拡大率でしか見れなくなります。



ゆちボン

リンク

2006/10/29(Sun) 18:06:47|NO.3158

>回答ありがとうございます。
>この方法だとその拡大率でしか見れなくなります。
もし、それがS桃鉄DXやHAPPYの全体マップみたいに滑らかな拡大でなく
「2倍」「3倍」「4倍」など、きっちりした数なら簡単に座標計算はできます。

	;拡大率が「zoom」だとすると、
;X,Yは割ってやると出てきます。 ;ちなみに、「NZX」は「Not Zoom X」の略です。 NZX = Y/zoom NZY = X/zoom

こんな感じでしょうか?



GANJI

リンク

2006/10/29(Sun) 19:00:05|NO.3159

一度拡大値をきっちりした数字で再チャレンジしたいと思います
ありがとうございました



ぷほ

リンク

2006/10/29(Sun) 22:17:22|NO.3163

gzoomを使うと言う事は、拡大縮小「元」の左上の座標と、横幅、縦幅は
分かっていると思いますが、後は、はそれと表示画面との比率の差を考えれば
よろしいのではないかと?

たとえば、元画像の拡大縮小元サイズを320*240に、表示画像を640*480にしているなら


○表示画像の座標が、何%の位置にあるか計算する

 Xの位置比率 = 画像X / 640
 Yの位置比率 = 画像Y / 480

○元画像の画像サイズではどの位置かを求める

 Xの変換後位置 = 320 * Xの位置比率
 Yの変換後位置 = 240 * Yの位置比率

○元画像のxy座標に、変換後の位置を加える

で、拡大されていても縮小になっていても、大丈夫ではないかと思います。



GANJI

リンク

2006/10/29(Sun) 23:34:17|NO.3164

はい。たしかに左上の座標と横幅縦幅はわかっております
元画像(2883*3308)を800*800で抜きだし表示してます。
元画像左上座標が0,0の時、拡大縮小して比率で座標は出せました。
また拡大縮小が0パーセントで左上座標が移動しても座標は出せました。
しかし拡大縮小&左上座標移動になると座標がずれていくのです。



じった

リンク

2006/10/30(Mon) 12:00:43|NO.3167

単純に比率計算ですむことだと思いますので、
もし少しずれるとしても、それなりの表示が今現在出来ているのでしたら
考え方自体はわかっているんだと思います。

あとはその『ずれる』のをどうすれば良いかですが・・・
確認なんですが、HSP3の場合、式の一番左側の数にタイプが統一されます

例えば

A=1.1+3 : mes A
とすると、『4.100000』となりますが

A=3+1.1 : mes A
の場合は『4』になってしまいます。

これをうっかり忘れると、小数点以下の誤差が発生していきますので、ずれる原因になることがあります。
確認してみてください。



GANJI

リンク

2006/10/30(Mon) 16:33:17|NO.3170

ありがとうございます
もう一度計算式を見直して見たところ単純なミスに気がつきました
座標の比率計算のあとにマス移動分を引いてやる所を比率計算する前にマウス座標からマス移動分ひいてから比率計算してしまう計算になってました。
皆様には親切にお返事頂き本当に感謝しております。
また何かありましたら教授のほど宜しく願います



名無し

リンク

2006/10/30(Mon) 16:35:47|NO.3171





ONION software Copyright 1997-2023(c) All rights reserved.