掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
表示画像の中心を原点に画像の拡大・縮小表示するには? (ID:39751)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
'あ'さん、TSさん、torさん、早速ありがとうございます。 >これだけで、役に立つかどうか疑問ですが こんなに早くヒントをいただける事は大変ありがたい。 'あ'さんが言われるように、「後は単純に計算するだけ」なのですが、 元々それぞれのプロパティの意味をよく理解していないために、こんがらかってしまいました。 それが、torさんの「後者の場合」ScrollBoxのScrollBar.Positionをどう動かしたら・・・ ・・・の詳細解説付きの解答で、思いどおりの拡大・縮小ができました。 //スクロールバーの位置をずらす PX := SX + ScrollBox1.HorzScrollBar.Position - Image1.Left; ScrollBox1.HorzScrollBar.Position{変更後} := Trunc(PX * (Rate - 1)) + ScrollBox1.HorzScrollBar.Position{変更前}; PY := SY + ScrollBox1.HorzScrollBar.Position - Image1.Left; ScrollBox1.HorzScrollBar.Position{変更後} := Trunc(PY * (Rate - 1)) + ScrollBox1.HorzScrollBar.Position{変更前}; 最初に書いておけば良かったのですが、全体を表示するには縮小が必要な、 図面のような大きい画像の表示を想定していました。 小さい画像は、サイズの1/2をScrollBar.Position入れて、中心に表示しようと思います。 「Imageの位置をずらす方法」は、ScrollBoxより小さいサイズの画像を予め、 中央あたりに表示しておいた場合は、あまり問題を感じないのですが、 図面が大きいとImage1.Leftは大きなマイナスの値になってしまいます。 この状態で、ScrollBoxのScrollBar.Positionを動かすと左はじにある画像が表示されなくなり、 拡大の後、移動(Imageの位置をずらす)、縮小・・・等、繰り返すと終いには何も表示されなくなりました。 torさんが最後におっしゃる事はこの事でしょうか? >Rangeもからんでくるのでさらにややこしい計算になりますけれど この事の意味をもう少し教えていただけませんか? よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.