令人尴尬的是,我在这里找到了答案:将图像居中显示在屏幕上的数学
我正在缩放并绘制一个较小的图像。两个图像的原点都在左上角(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