使用不同的角度旋转矩阵

时间:2012-02-21 14:46:51

标签: java math matrix

我在互联网上搜索过,我看到很多关于如何将矩阵或图像旋转90度或180度的帖子。但是我怎样才能旋转12度或162度的矩阵? 从: enter image description here

要:

enter image description here

此图像以~35度旋转。

如你所见,我的矩阵是马图像,圆圈是旋转路径,大矩形是旋转后创建的新矩阵。

我怎样才能做到这一点?谢谢!

PS:这不起作用

int angle=35*Math.PI/180;
int x1 = (int)(x * cos(angle)) - (y * sin(angle));
int y1 = (int)(y * cos(angle)) + (x * sin(angle));

1 个答案:

答案 0 :(得分:2)

如果您在使用 x 值计算 y 之前保存了 x 值,那么您的代码可能会正常工作。

  • deg 应该是 radian 而不是度数:35*PI/180
  • 你不应该用整数计算,因为 cos sin 介于[0,1]之间,想想浮点数。

float angle = 35*Math.PI/180;
int x1 = round(x * cos(angle) - y * sin(angle));
int y1 = round(y * cos(angle) + x * sin(angle));

注意:铸造很可爱。