Math 缩放时保持图像居中,原点位于左上角

Math 缩放时保持图像居中,原点位于左上角,math,graphics,Math,Graphics,我正在缩放图像并将其绘制成更小的图像。两个图像的原点都位于左上角(0,0)。较大的图像为100x100px(但可以是任何大小),较小的图像为28x28px。这部分很简单,28/100=比例因子 下一部分是,我希望通过缓慢减小比例因子来将图像缩小到更小的尺寸,但我希望图像在28x28px框中保持居中,因此问题是,如何根据比例因子计算x和y偏移以使对象在28x28框中保持居中 function scale(scalefactor as float,destregion as object, sour

我正在缩放图像并将其绘制成更小的图像。两个图像的原点都位于左上角(0,0)。较大的图像为100x100px(但可以是任何大小),较小的图像为28x28px。这部分很简单,28/100=比例因子

下一部分是,我希望通过缓慢减小比例因子来将图像缩小到更小的尺寸,但我希望图像在28x28px框中保持居中,因此问题是,如何根据比例因子计算x和y偏移以使对象在28x28框中保持居中

function scale(scalefactor as float,destregion as object, sourceregion as object) as object
    sourceregion.setalphaenable(true)
    destregion.setalphaenable(true)
    destregion.setscalemode(1)
    destregion.clear(&h00000000)

    xOffset= ****** getStackOverFlowHelp(???) ******
    yOffset= ****** getSTackOverflowHelp(???) ******

    destregion.drawscaledobject(xOffset,yOffset,scalefactor,scalefactor,sourceregion)
    destregion.finish()
end function

令人尴尬的是,我在这里找到了答案:

虽然上下文不同

工作职能:

function scale(scalefactor as float,destregion as object,sourceregion as object) as object
    sourceregion.setalphaenable(true)
    destregion.setalphaenable(true)
    destregion.setscalemode(1)
    destregion.clear(&h00000000)
    ww=sourceregion.getwidth()*scalefactor
    w=destregion.getwidth()
    hh=sourceregion.getwidth()*scalefactor
    h=destregion.getwidth()
    xOffset=(w/2)-(ww/2)
    yoffset=(h/2)-(hh/2)    
    destregion.drawscaledobject(xOffset,yOffset,scalefactor,scalefactor,sourceregion)
    destregion.finish()
end function

可能会重复尴尬的事实,意识到几年前你问了同样的问题+1.学术诚信