我玩弄了一个项目,我可以在屏幕上定位对象运行时。我还有一个小的“预览”窗口,我想看到对象的轮廓。
我有一个在“场景”上有大小和位置的对象数组。现在我想遍历我的场景对象,并在预览窗口中为“场景”中的每个对象创建一个图片框。
所以,我有“场景”的大小和场景中可见的对象数组。每个对象都有一个映射到场景的大小和位置。
我还有一个具有动态大小的预览窗口。如何创建缩小到预览窗口的预览?为了方便起见,我循环遍历场景中的场景对象,并在预览表单上为每个对象创建一个图片框,使用预览表单大小进行缩放。
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中的任何例子都会很好。
感谢。
答案 0 :(得分:2)
Bob Powell关于GDI +的网站可能会提供一些有关如何继续的有用信息。查看他的Matrix Transformations页面。本文可能会为您提供有关如何继续的一些好主意
答案 1 :(得分: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