2012-03-20 35 views
4

我試圖在一定角度(所以它停留在飛機上)圍繞法線的法線旋轉一個點。C++:圍繞飛機的法線旋轉矢量

例如:

  • 點=(0,0,1)(上平面)
  • 普通=(0,1,0)
  • 角度= 33度

,但似乎無法弄清楚如何做到這一點

編輯:

個旋轉軸線總是通過原點(0,0,0)

+0

我假設你的意思是旋轉軸通過原點? – 2012-03-20 16:05:08

+0

是的,它的確如此。它總是通過(0,0,0) – RdR 2012-03-20 16:18:42

+0

那麼它是你需要幫助的數學,還是Irrlicht API,或者是什麼?你有什麼嘗試? – 2012-03-20 16:26:54

回答

0

可能不是最佳的,但:找到的平面的跨度向量(稱它們爲U和V),表示點P U中的術語和V並應用2D旋轉。 PS:法線沒有完全定義一架飛機;此外,您還需要在飛機上至少有一個點。

+0

要旋轉的點被稱爲「在飛機上」。 – aldo 2012-03-20 16:26:07

+0

然後,法線和該點唯一確定平面,並且由於該點位於旋轉的軸線上,所以旋轉將是無操作的。 – zvrba 2012-03-20 16:35:27

+0

其實沒有。操作程序聲明(在編輯中)「旋轉軸始終通過原點(0,0,0)」。要旋轉的點在飛機上,但不一定(實際上不太可能)在該軸上。 – aldo 2012-03-20 16:45:08

0

要計算你想要的旋轉矩陣,你需要一點線性代數。有an article on Wikipedia這說明你需要做什麼。

2

如果您正在尋找3空間中的軸角旋轉,Rodrigues的旋轉公式非常有用。維基百科頁面是相當不錯的:here