окно просмотра масштабирования размера объекта -> предварительный просмотр

StackOverflow https://stackoverflow.com/questions/923037

  •  06-09-2019
  •  | 
  •  

Вопрос

Я играю с проектом, в котором я могу размещать объекты во время выполнения на экране.У меня также есть небольшое окно "предварительного просмотра", в котором я хочу увидеть контуры объектов.

У меня есть массив объектов, которые имеют размер и местоположение на "сцене".Теперь я хочу перебрать свои объекты сцены и создать по одному picturebox в окне предварительного просмотра для каждого объекта в "сцене".

Итак, у меня есть размер "Сцены" и массив объектов, которые видны на сцене.Каждый объект имеет размер и местоположение, сопоставленные со сценой.

У меня также есть окно предварительного просмотра, которое имеет динамический размер.Как мне создать предварительный просмотр, масштабируемый до размера окна предварительного просмотра?Чтобы упростить задачу, я перебираю объекты сцены в scene и создаю picturebox в форме предварительного просмотра для каждого объекта, который использует размер формы предварительного просмотра для масштабирования.

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 был бы хорош.

Спасибо.

Это было полезно?

Решение 2

Это сработало, это было не сложнее, чем сейчас.

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

Другие советы

На сайте Боба Пауэлла в GDI + может содержаться полезная информация о том, как действовать дальше.Загляните на его страницу, посвященную матричным преобразованиям.Эта статья может дать вам несколько хороших идей о том, как действовать дальше

Преобразования Bob Powell GDI+

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top