xDest=0;
yDest=(y2-y1*(x2/x1))/2;
DestWidth=x2;
DestHeight=y2-yDest;
} else {xDest=(x2-x1*(y2/y1))/2;
yDest=0;
DestWidth=x2-xDest;
DestHeight=y2;
} }妳這裏的計算有問題。
第壹個情況,yDest+DestHeight = y2 = wRect的高度。也就是在最下方顯示了,而不是高度居中。
?if?(x1*1.0/y1>x2*1.0/y2) {xDest=0;
DestWidth=x2;
DestHeight=y1*x2/x1;
yDest=(y2-DestHeight)/2;
}這樣應該就對了,else自己寫壹下。