c# 图片旋转位置变了
我有一个64*64的图希望实现该图中心旋转当旋转到n*90°时边框重合于是通过Location.x+W/2和Location.y+H/2取得中心后通过myMatrix.R...
我有一个64*64的图
希望实现该图中心旋转
当旋转到n*90°时 边框重合
于是通过Location.x + W/2 和 Location.y + H/2
取得中心后通过
myMatrix.RotateAt(angle, a.CenterPoint, MatrixOrder.Append);
通过该方法修改angle来修改图片旋转度数。
但是图片在90° 180°和270°时为能边框重合
当我把Location.x + W/2 和 Location.y + H/2
改为Location.x + W/2 +10 和 Location.y + H/2 + 10 后 才真正实现需求
这是为什么啊....... 展开
希望实现该图中心旋转
当旋转到n*90°时 边框重合
于是通过Location.x + W/2 和 Location.y + H/2
取得中心后通过
myMatrix.RotateAt(angle, a.CenterPoint, MatrixOrder.Append);
通过该方法修改angle来修改图片旋转度数。
但是图片在90° 180°和270°时为能边框重合
当我把Location.x + W/2 和 Location.y + H/2
改为Location.x + W/2 +10 和 Location.y + H/2 + 10 后 才真正实现需求
这是为什么啊....... 展开
1个回答
2015-12-14
展开全部
应该是你的中心点不对造成的。
你旋转的时候,是按照图片上的像素为中心进行旋转的。
因为W和H是2的倍数,所以找到的中心点并不是图片上的一个像素。只有W和H都是奇数时,中心点才是图片上的一个像素。
实际的中心点和理论的中心点有偏差。
如果图片旋转时,旋转角度是90的倍数的话,直接采用矩阵旋转的方法吧。
你旋转的时候,是按照图片上的像素为中心进行旋转的。
因为W和H是2的倍数,所以找到的中心点并不是图片上的一个像素。只有W和H都是奇数时,中心点才是图片上的一个像素。
实际的中心点和理论的中心点有偏差。
如果图片旋转时,旋转角度是90的倍数的话,直接采用矩阵旋转的方法吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询