我正在开发图片重绘应用。我知道一个具有缩放属性的图像视图的中心。即它可以改变它的框架和中心。要应用于另一个视图中心。当我将中心应用于新形成的图像视图时,它会给出错误的中心,因为之前的图像视图具有缩放属性。那么我如何从以前的imageview获得我的新图像视图的精确中心
答案 0 :(得分:0)
您的观点或图片
width*height
您的中心视图应始终处于适当位置
(width/2,height/2)
图像是否缩放。 如果您需要“缩放”中心,只需在比例尺后重新计算您的中心,或者如果不需要,请保留原始中心位置。
伪代码:
getCenter(w,h){
pos[0]=w/2;
pos[1]=h/2;
return pos;
}
calc(image){
c = getCenter(image.w,image.h);
scaled = image.scale(80); //That is 80% of original
d = getCenter(scaled.w,scaled.h);
if(something) return c;
else return d;
}
讨论后的第二个解释(阅读评论):
假设您有一个640X480的图像,并创建一个320X240的视图(四分之一),然后将该视图向右移动100px,从位置(0,0)向下移动50个像素,这通常是图像的左上角然后:
您的新视图中心将照常查看视图中的位置(160,120)
ORIGINAL图像的原始中心将保留在其位置(320,240),该位置随意对应于VIEW的右下角。
如果你想知道ORIGINAL图像DID的原始中心在移动和“裁剪”后最终的位置,那么你只需要知道你在哪里移动视图:
100px right becomes (original position - relative movement) (320 - 100) = 220
50px down becomes (original position - relative movement) (240 - 50) = 190
因此,您的原始中心将位于新视图的位置(220,190)。