2009-05-28 12 views
2

私は、画面上のオブジェクトのランタイムを配置することができるプロジェクトをいじります。私は小さな「プレビュー」ウィンドウも持っています。ここでオブジェクトの輪郭を見たいのです。スケールのオブジェクトサイズviewport->プレビュー

私は「シーン」のサイズと位置を持つオブジェクトの配列を持っています。今度は私のシーンオブジェクトをループして、「シーン」内の各オブジェクトのプレビューウィンドウに1つのピクチャボックスを作成します。

だから、私は「シーン」の大きさやシーンに表示されるオブジェクトの配列を持っています。すべてのオブジェクトは、シーンにマッピングされたサイズと場所を持ちます。

私はまた、動的なサイズを持っているプレビューウィンドウを持っています。プレビューウィンドウを縮小するプレビューを作成するにはどうすればよいですか?簡単にするために、シーンのシーンオブジェクトをループし、各オブジェクトのプレビューフォームにプレビューフォームサイズを使用してスケーリングを行うピクチャボックスを作成します。

SceneSize=new size(800,600) 
PreviewSize=new size(80,60) 

For each obj as SceneObject in Scene 
    dim p as new picturebox 
    p.size=?? scaling here (we have obj.size and obj.location) 
    p.location=?? scaling here (we have obj.size and obj.location) 
    previewWindow.controls.add (p) 

next 

.Netの任意の例がいいです。

ありがとうございました。 GDI +の

答えて

0

を続行する方法についていくつかの良いアイデアをご提供するかもしれない、それはそれよりも難しくありませんでした。

Function GetPreviewRectangleForObject(ByVal ScreenSize As Size, ByVal PreviewSize As Size, ByVal OriginalRect As Rectangle) As Rectangle 
    Dim xFactor As Integer = ScreenSize.Width/PreviewSize.Width 
    Dim yFactor As Integer = ScreenSize.Height/PreviewSize.Height 
    With OriginalRect 
     Return New Rectangle(.X/xFactor, .Y/yFactor, .Width/xFactor, .Height/yFactor) 
    End With 
End Function 
2

ボブパウエルのサイトを続行する方法についていくつかの有用な情報を持っているかもしれません。 Matrix Transformationsの彼のページをチェックしてください。この記事では、これはトリックをした

Bob Powell GDI+ Transformations

+0

感謝。それは良い情報だった、+1。 – Stefan

関連する問題