另一个矩形中的中心矩形

tmi*_*hty 1 .net vb.net drawing rectangles

我还没有能够建立一个真正可靠的代码来将一个矩形放在另一个矩形中。

我想让“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
Run Code Online (Sandbox Code Playgroud)

但对我来说它看起来并不干净。

Dan*_*Dan 9

如果第一个矩形具有坐标 (x1, y1)、宽度 (w1) 和高度 (h1),则第二个矩形应如下所示:

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);
Run Code Online (Sandbox Code Playgroud)

希望这个伪代码有帮助。这主要是一道数学题。