2

我玩弄了一个项目,我可以在其中将对象运行时定位在屏幕上。我还有一个小的“预览”窗口,我想在其中查看对象的轮廓。

我有一个在“场景”上有大小和位置的对象数组。现在我想遍历我的场景对象并在预览窗口中为“场景”中的每个对象创建一个图片框。

所以,我有“场景”的大小和场景中可见的对象数组。每个对象都有映射到场景的大小和位置。

我还有一个具有动态大小的预览窗口。如何创建缩小到预览窗口的预览?为方便起见,我循环遍历场景中的场景对象,并在预览表单上为每个对象创建一个图片框,该图片框使用预览表单大小进行缩放。

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

Bob Powell 在 GDI+ 上的网站可能有一些关于如何进行的有用信息。查看他关于矩阵变换的页面。本文可能会为您提供一些关于如何进行的好主意

鲍勃·鲍威尔 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 回答