我有一个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 后 才真正实现需求
这是为什么啊.......
c# 图片旋转位置变了
答案:1 悬赏:70 手机版
解决时间 2021-02-13 18:22
- 提问者网友:書生途
- 2021-02-12 23:56
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-02-13 01:01
应该是你的中心点不对造成的。
你旋转的时候,是按照图片上的像素为中心进行旋转的。
因为W和H是2的倍数,所以找到的中心点并不是图片上的一个像素。只有W和H都是奇数时,中心点才是图片上的一个像素。
实际的中心点和理论的中心点有偏差。
如果图片旋转时,旋转角度是90的倍数的话,直接采用矩阵旋转的方法吧。
你旋转的时候,是按照图片上的像素为中心进行旋转的。
因为W和H是2的倍数,所以找到的中心点并不是图片上的一个像素。只有W和H都是奇数时,中心点才是图片上的一个像素。
实际的中心点和理论的中心点有偏差。
如果图片旋转时,旋转角度是90的倍数的话,直接采用矩阵旋转的方法吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯