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 后 才真正实现需求
这是为什么啊.......
展开
 我来答
匿名用户
2015-12-14
展开全部
应该是你的中心点不对造成的。

你旋转的时候,是按照图片上的像素为中心进行旋转的。
因为W和H是2的倍数,所以找到的中心点并不是图片上的一个像素。只有W和H都是奇数时,中心点才是图片上的一个像素。
实际的中心点和理论的中心点有偏差。
如果图片旋转时,旋转角度是90的倍数的话,直接采用矩阵旋转的方法吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式