先解释关于中心点的计算:
对于Xcenter ,它等于左上角的位置加上图像矩形的宽的一半,所以应该是
xcenter = left + (right - left) /2
至于为什么要加上1,那是因为运算的结果被限定在整数集合内。
简单的说,如果(right-left) = 5 那么一般的语言 5/2 = 2, (5+1)/2 = 3;
          如果(right-left) = 4 那么一般的语言 4/2 = 2, (4+1)/2 = 2;
ycenter 同样。至于旋转以后的坐标,可以通过两次变换坐标系求出来。就是先把坐标原点变换到图像矩形中心,旋转完以后在变换回来。这个就不详细说明了。下面是旋转的过程:
如果果一个点(x1,y1)旋转到(x2,y2),对应的角度旋转从θ1到θ1+θ2那么很显然:
sinθ1=y1/sqrt(x1*x1+ y1*y1)
cosθ1=x1/sqrt(x1*x1+ y1*y1)
sinθ1=y2/sqrt(x2*x2+ y2*y2)
cosθ2=x2/sqrt(x2*x2+ y2*y2)注意到 x1*x1 + y1*y1 = x2*x2 + y2*y2
那么
x2=x1*cos(θ1+θ2)/cosθ1
y2=y2*sin(θ1+θ2)/sinθ1
然后按照两角和与差的公式展开,运算就可以得出结论啦。抱歉两角和与差测公式我记不清了,只能推导到这一步了。