1
我有一個顯示畫布圖像的自定義控件。我正在使用AutoScroll以及縮放比來顯示圖像。計算縮放/滾動畫布的視區矩形
因此我有工作的數據是:
- 變焦縮放比例(2.0F = 200%的縮放)
- 畫布邊界(的RectangleF)。 800x600像素的圖像將具有1600x1200的CanvasBounds以及2.0f的縮放比例。如果縮小並且不滾動,則位置點是畫布的起點。
- ClientRectangle
- AutoScrollPosition
我需要計算的視口在任何給定時間,定在座標相對於原始位圖。所以如果整個圖像是可見的,並且圖像是800x600,那麼視口將是0,0處的矩形,大小爲800,600。
我放大了圖像,視口應該始終是代表整個可見區域的矩形。如果我縮小並且圖像居中在屏幕上,那麼視口應該是整個圖像。
編輯:這是一個圖形表示。位圖當前被縮放,但是我具有原始大小和縮放比例。我有AutoScrollPosition。 AutoScrollMinSize根據縮放級別進行設置。如果圖片高度爲500px,並且我們處於200%(2.0f)的縮放比例,則AutoScrollMinSize.Height爲1000.
紅色框代表視口矩形。
我沒有在C#中的答案,但看看附錄A http://compsci.gxstudios.net/project.pdf萬一它有幫助。 –
這不是3D,它是GDI + –
附錄不是在談論3D,而是3D繪圖編輯器中的2D設計畫布。 –