当缩放和原点在左上角时,保持图像居中



我正在缩放并绘制一个较小的图像。两个图像的原点都在左上角(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