[Bf-committers] UV/Image Editor's zoom calculation
Masahito Takahashi
mato1492 at gmail.com
Tue Jan 26 12:30:21 CET 2010
Hello,
I submitted a patch, which is related to UV/Image Editor's zoom calculation.
[#20800] UV/Image Editor's Zoom rate is not properly calculated.
http://projects.blender.org/tracker/index.php?func=detail&aid=20800&group_id=9&atid=127
Currently UV/Image Editor's image is displayed a little smaller than
it should be.
I think it is because zoomx, zoomy value is not calculated properly.
Zoomx and zoomy is calculated in ED_space_image_zoom() like this way.
*zoomx= (float)(ar->winrct.xmax -
ar->winrct.xmin)/(float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin)*width);
*zoomy= (float)(ar->winrct.ymax -
ar->winrct.ymin)/(float)((ar->v2d.cur.ymax -
ar->v2d.cur.ymin)*height);
And ar->winrct.xmax and ar->winrct.ymax is calculated in
image_main_area_set_view2d() like this way.
ar->v2d.cur.xmax= ar->v2d.cur.xmin + ((float)winx/sima->zoom);
ar->v2d.cur.ymax= ar->v2d.cur.ymin + ((float)winy/sima->zoom);
Winx and winy is calculated like this way.
winx= ar->winrct.xmax - ar->winrct.xmin + 1;
winy= ar->winrct.ymax - ar->winrct.ymin + 1;
So I think calculation of zoomx, zoomy needs "+ 1" like this.
*zoomx= (float)(ar->winrct.xmax - ar->winrct.xmin +
1)/(float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin)*width);
*zoomy= (float)(ar->winrct.ymax - ar->winrct.ymin +
1)/(float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin)*height);
I sent a mail about this patch once, but seems to failed to receive.
So send this again with different mail title.
If I send same mail twice, then I am sorry that I bother you.
Thank you.
Masahito Takahashi.
More information about the Bf-committers
mailing list