我正在尋找矩陣的解釋(或圖像),以及它如何在將平移,旋轉和縮放放在它上面時發生變化...(一個單元格與sin(角度)以及另一個單元格x翻譯的座標)OpenGL glut glTranslate glRotate glScale矩陣
回答
現在,忽略翻譯,這是一個比旋轉和縮放稍微棘手的概念。
想想這個的方法是每個矩陣定義基向量的變化。給定一個標準的座標系統,你的基本向量是(1,0,0)
,(0,1,0)
和(0,0,1)
。就目前而言,隨着概念的貫徹,我將假設一個2D系統,但它的工作量較少。
我也假設列專業。我不記得OpenGL是否真的使用了這個,所以先檢查一下,如果需要的話可以選擇轉置矩陣。
以前定義的基矢量可以矩陣形式表示。這只是將每個向量作爲列中的一個列。因此,爲了從基本矢量變換到基本矢量(即,無變化),我們將使用以下矩陣。這也稱爲「單位矩陣」,因爲它不會對輸入做任何事情(類似於* 1是乘法的標識)。
2D 3D
(1 0) (1 0 0)
(0 1) (0 1 0)
(0 0 1)
爲了完整起見,我已經包含了3D版本,但這就像我將採取3D。
縮放矩陣可以看作是「拉伸」軸。如果軸的大小是其兩倍,則它們之間的間隔將相距兩倍,因此內容會更大。以此爲實施例
(2 0)
(0 2)
這將從(1, 0)
和(0, 1)
基本向量變爲(2, 0)
和(0, 2)
,從而使表示兩倍大的整體形狀。圖解,見下文。
Before After
6| 3|
5| |
4| 2|-------|
3| | |
2|--| 1| |
1|__|___________ |_______|______
0 1 2 3 4 5 6 7 0 1 2 3
相同,則發生旋轉,雖然相反,我們告不同的值,是用於旋轉矩陣的值如下:
(cos(x) -sin(x))
(sin(x) cos(x))
繞角度x
這將有效地旋轉每個軸線。要真正理解這一點,請刷新你的觸發器,並假設每一列是一個新的基本向量;)。
現在,翻譯有點棘手。爲此,我們在矩陣的末尾添加一個額外的列,對於所有其他操作,最後一行中只有1
(即它是表單的標識)。對於翻譯,我們填寫如下:
(1 0 x)
(0 1 y)
(0 0 1)
這是3D形式,但不是您將習慣的形式。您可以將此模型設置爲移動Z座標系座標(並記住,我們正在2D中工作!),假設您的模型存在於。這有效地扭曲了形狀,但是,再次,因爲我們在2D中工作,所以它變平了,所以我們沒有理解第三個維度。如果我們在3D在這裏工作,這實際上是第四維,因爲在這裏可以看到:
(1 0 0 x)
(0 1 0 y)
(0 0 1 z)
(0 0 0 1)
同樣,「第四維」是沒見過,但我們不是沿着它移動和展平。在2D空間中首先圍繞它變得更容易,然後再嘗試和推斷。在3D空間中,這個第四維向量被稱爲w
,所以你的模型隱含地位於w=1
。
希望這會有所幫助!
編輯:順便說一句,這個頁面是幫助我瞭解翻譯矩陣的東西。它有一些體面的圖表,所以希望它會更有幫助: http://www.blancmange.info/notes/maths/vectors/homo/
- 1. gluLookAt對glRotate/glTranslate/glScale有影響嗎?
- 2. OpenGL轉換(glScale,glTranslate等)
- 3. OpenGL的glRotate和glTranslate命令
- 4. 從glRotate()+ glTranslate()到gluLookAt()
- 5. OpenGL glViewport和glScale
- 6. openGL/glut&glm ModelView Matrix
- 7. glTranslate和glRotate無法正常工作
- 8. 使用glTranslate和glRotate移動和旋轉?
- 9. 使用glRotate和glTranslate與碰撞檢測
- 10. 的OpenGL glScale和glLoadMatrix
- 11. glRotate和我的矩陣::旋轉
- 12. OpenGL和GLUT uncomprehension
- 13. glTranslate/rotate/scale vs制服中的矩陣
- 14. 主要用於openGL代碼
- 15. 如何在OpenGL 4.3中進行矩陣乘法?
- 16. glRotate除零
- 17. OpenGl ES:Ray使用推/彈出矩陣繪製多個對象
- 18. GLUT矩陣乘法旋轉在其自己的軸旋轉對象,而不使用glRotate
- 19. OpenGL ES 2.0中的旋轉
- 20. 使用glTranslate的OpenGL動畫
- 21. 快速旋轉和平移不使用glRotate/glTranslate
- 22. 使用OPENGL GLUT
- 23. opengl glut make hud
- 24. GLUT OpenGL glRotatef
- 25. OpenGL的矩陣VS DirectX的矩陣
- 26. OpenGL正常矩陣
- 27. OpenGL中的矩陣
- 28. OpenGL投影矩陣
- 29. 瞭解OpenGL矩陣
- 30. OpenGL顏色矩陣
+1的努力......我希望ASCII藝術旋轉雖然! :) – tmpearce