From 8c56eb0525c22acee713434840c2ef0a1a3811cc Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Mon, 17 Jun 2019 10:43:31 +0900 Subject: [PATCH] Avoid rounding error in image rotation * src/image.c (image_set_rotation): Halve translations as double values. --- src/image.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/image.c b/src/image.c index a3747cfa6b7..c08b898e7d8 100644 --- a/src/image.c +++ b/src/image.c @@ -2139,7 +2139,7 @@ image_set_rotation (struct image *img, matrix3x3 tm) matrix3x3 t = { [0][0] = 1, [1][1] = 1, - [2][0] = img->width >> 1, [2][1] = img->height >> 1, [2][2] = 1 }; + [2][0] = img->width * .5, [2][1] = img->height * .5, [2][2] = 1 }; matrix3x3 tmp; matrix3x3_mult (t, tm, tmp); @@ -2151,8 +2151,8 @@ image_set_rotation (struct image *img, matrix3x3 tm) matrix3x3_mult (rot, tmp, tmp2); /* Translate back. */ - t[2][0] = - (width >> 1); - t[2][1] = - (height >> 1); + t[2][0] = - (width * .5); + t[2][1] = - (height * .5); matrix3x3_mult (t, tmp2, tm); img->width = width; -- 2.39.2