2015-01-13 8 views
0

다른 직사각형에 사각형을 센터링하는 데 정말로 신뢰할 수있는 코드를 설정할 수 없었습니다.다른 직사각형의 중심 사각형

"RectangleToCenter"의 중심점을 "SourceRectangle"의 중심점과 일치시키고 싶습니다. 크기 조정이 필요하지 않습니다.

나의 현재 시도는

Public Sub CenterRect(ByVal uMain As Rectangle, ByRef uRectToCenter As Rectangle) 

    Dim iAVHeightHalf As Integer = uMain.Height/2 'src y center 
    Dim iAVWidthHalf As Integer = uMain.Width/2 'src x center 

    Dim iStartDestX As Integer = uMain.Left + (uRectToCenter.Width/2) - iAVWidthHalf 
    Dim iStartDestY As Integer = uMain.Top + (uRectToCenter.Height/2) - iAVHeightHalf 

    Dim nNewStart As New Point(iStartDestX, iStartDestY) 

    uRectToCenter.Location = nNewStart 

End Sub 

입니다 그러나 그것은 나에게 깨끗하게 보이지 않는다. 제 사각형의 좌표 (X1, Y1), 폭 (W1)과 높이 (H1)가있는 경우

+1

코드가 깨끗해 보이지 않거나 원하는 결과가 아닙니다. – Mathemats

답변

2

번째 사각형 등 같아야

w2 = //whatever you want the width to be 
h2 = //whatever you want the height to be 
x2 = x1 + ((w1 - w2)/2); 
y2 = y1 + ((h1 - h2)/2); 

바라건대이 의사 코드 돕는다. 이것은 주로 수학 문제입니다.

0
objSmall.X = CInt(objBig.X + (Math.Round(((objBig.Width/2) - (objSmall.Width/2)), 0))) 
    objSmall.Y = CInt(objBig.Y + (Math.Round(((objBig.Height/2) - (objSmall.Height/2)), 0))) 
+0

이것은 화면의 객체 위치가 아니라 너비와 높이 만 고려해야합니까? –

+0

예, 감사합니다. 편집 됨. – N0Alias