2012-02-21 109 views
0

我在互聯網上搜索,我看到很多關於如何旋轉矩陣或圖像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)); 
+0

你在用什麼語言? – sinsedrix 2012-02-21 15:16:46

+0

java.I只是想旋轉一個矩陣圖形引擎使用像素 – boyd 2012-02-21 15:42:35

+0

我想說你的第二個例子圖像旋轉-35度,或325度(正向旋轉通常是逆時針)。另外,你的變量名現在有點誤導,我稱它爲「角度」或「弧度」,因爲它現在代表以弧度表示的角度。 – 2012-02-21 15:44:48

回答

2

也許你的代碼將在您使用它之前保存X值來計算Ÿ工作。

  • 應在radian沒有度:35*PI/180
  • 你不應該用整數計算,因爲COS是[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)); 

注:鑄造是huggly。

+0

我更新了帖子。總之,這仍然不起作用。我對x1或y1獲得-1 -1 – boyd 2012-02-21 14:59:31

+0

但是您沒有更新角度[弧度](http://en.wikipedia.org/wiki/ Radian)! – sinsedrix 2012-02-21 15:10:14

+0

我不能'使用浮點數,因爲我的矩陣是使用整數作爲索引 – boyd 2012-02-21 15:44:55