Quinn's blog ! I'm glad to be here!
阿新 • • 發佈:2018-12-14
數學推導 比例縮法填充,滿足最大邊填充,故此,首先找出相對於填充的最大邊
let fromW = from.width let fromH = from.height let toH = to.height let toW = to.width let fromRadio = fromH/fromW let toRadio = toH/toW 如果 fromRadio>toRadio 則 H為最大邊,否則W為相對來講的最大邊 此時 確定出 radioH = 1 可得出 此時 from的縮放為(toH/fromH) newfromW = fromW * (toH/fromH) 此時:已知 newfromW,toW,求變換比例 toW * radioW = newfromW radioW = newfromW / toW = fromW * (toH/fromH)/ toW 同理:fromRadio>toRadio時: radioW = 1 from的縮放為(toW/fromW) newfromH = fromH * (toW/fromW) radioH = fromH * (toW/fromW) / toH
證明完畢:
Swift4
程式碼如下:
func getSizeRadio(from:CGSize,to:CGSize)->(CGFloat,CGFloat){ let fromW = from.width let fromH = from.height let toH = to.height let toW = to.width let fromRadio = fromH/fromW let toRadio = toH/toW var radioW:CGFloat = 1 var radioH:CGFloat = 1 if fromRadio>toRadio{ radioH = 1 radioW = fromW * (toH/fromH)/toW }else{ radioH = fromH * (toW/fromW)/toH radioW = 1 } return (radioW,radioH) }