
由于 EasyX 图形库中的 rotateimage 函数没有考虑关于 alpha 信息的问题,使旋转后的贴图 alpha 信息失真。
为了满足自己的需求,本人手动写 rotateimage 函数,解决了该问题。
本文参考:
- http://tieba.baidu.com/p/1490993926 (图像任意角度旋转方法)
- https://codeabc.cn/yangw/post/transparent-putimage (详解透明贴图和三元光栅操作)
要实现图像旋转首先要搞懂旋转的坐标变换。
如图,在平面直角坐标系中,以原点为中心,一个点由一个位置逆时针旋转到另一个点,转角为θ。
根据坐标关系,可以求出两点的坐标关系,推算过程如下:
如图是一个单位圆的 1/4 圆弧,圆心在原点上,点 (x, y) 和 (x1, y1) 在圆弧上,则由三角函数的和差角公式可以推出式子
y
...