문제

화면에 객체 런타임을 배치 할 수있는 프로젝트를 사용합니다. 나는 또한 작은 "미리보기"-바람이 있는데, 여기서 객체의 개요를보고 싶습니다.

"장면"에 크기와 위치를 가진 객체 배열이 있습니다. 이제 "장면"의 각 객체에 대해 내 장면-개체를 통해 루프를하고 미리보기 창에 하나의 그림 상자를 만들고 싶습니다.

그래서 나는 "장면"의 크기와 장면에서 볼 수있는 객체의 배열을 가지고 있습니다. 모든 물체에는 크기와 위치가 장면에 매핑되어 있습니다.

또한 동적 크기가있는 미리보기 창이 있습니다. 미리보기 창으로 스케일링하는 미리보기를 어떻게 작성합니까? 쉽게 만들기 위해 장면의 장면 객체를 루프하고 각 객체의 미리보기 형식에서 미리보기 형식 크기를 사용하여 스케일링을 수행하는 그림 상자를 만듭니다.

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 사이트에는 진행 방법에 대한 유용한 정보가있을 수 있습니다. 매트릭스 변환에 대한 그의 페이지를 확인하십시오. 이 기사는 진행 방법에 대한 좋은 아이디어를 제공 할 수 있습니다.

Bob Powell GDI+ 변환

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top