2

オブジェクトを実行時に画面に配置できるプロジェクトをいじっています。オブジェクトの輪郭を確認したい小さな「プレビュー」ウィンドウもあります。

「シーン」上のサイズと位置を持つオブジェクト配列があります。次に、シーンオブジェクトをループして、「シーン」内のオブジェクトごとにプレビューウィンドウに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の例があればいいでしょう。

ありがとう。

4

2 に答える 2

2

GDI+に関するBobPowellのサイトには、続行する方法に関するいくつかの有用な情報があるかもしれません。行列変換に関する彼のページをチェックしてください。この記事は、どのように進めるかについてのいくつかの良いアイデアをあなたに提供するかもしれません

ボブパウエルGDI+変換

于 2009-05-29T03:59:26.570 に答える
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
于 2009-05-30T00:28:57.467 に答える