我一直在試圖圍繞我的線性和矢量Algerbra知識如何適應計算機圖形學。格外的語言C#矢量和矩陣如何處理計算機圖形,如矩陣旋轉?
我說的知識是: 點 向量 矩陣 矩陣multiplaction - 旋轉,歪斜等。
繼承人我的目標:創建一個簡單的框,應用旋轉,翻譯,並通過矩陣乘法歪曲。之後,開始弄亂相機。我希望自己做這件事,只使用實際在數據中獲取並繪製的函數。我希望在中間創建所有邏輯的東西。
繼承人什麼我已經走到這一步: 我定製的Vector3類,它擁有 -an X,Y和Z值(花車) -Several靜態矩陣(2×2 2d的浮標陣?)持有ZERO和翻譯矩陣(對於2x2和3x3) -Methods 1.旋轉(float inAngle) - 創建旋轉矩陣並將xyz乘以它。 2.翻譯(inx,iny,inz) - 將ins添加到成員變量中 3. etc ...
完成後,我將該矢量轉換回C#Vector3類並將其傳遞給繪圖類,如繪製線的DrawPrimitiveShapes。
Box類是這樣的: 4的Vector3的,UpperLeftX,UpperRightX,LowerLeftX,LowerRightX
採用4點然後渲染線,每一個
我的困惑平局類來自於本:
如何旋轉此盒?我是否在正確的軌道上使用了4個vector3's的盒子? 我只是旋轉所有四個vector3的角度,並完成它?如果紋理數據在中間,紋理如何旋轉?
我對線性代數並不完全熟悉,無論你想要做什麼,但聽起來你的操作水平比XNA要低得多(我假設你使用XNA是因爲你將它標記爲這樣?)。 XNA有一個預先構建的Matrix類,它有大量有用的靜態方法來創建矩陣來轉換您的對象,無論您滿意。您可以使用Vector3.Transform根據您構建的矩陣移動頂點。有很多關於使用矩陣進行3d對象操作的教程。對不起,如果我誤解你打算在這裏做什麼。 –
感謝您的評論A型。你似乎得到了我想要做的事情。任何想法我可以用什麼更好的語言輕鬆地將矢量和線條畫到屏幕上?我希望能夠保持2D,但我注意到大多數人甚至使用Vector3的二維用途,將z值保留爲0. – MintyAnt
XNA當然真的很喜歡繪製簡單的矢量和線條。它適合繪製完整的模型網格。我已經看到了我的教授的物理演示,該演示使用Python在座標平面中繪製了一些矢量繪圖。看看是否可以幫助你:http://msdn.microsoft.com/en-us/library/bb196414%28v=xnagamestudio.10%29.aspx –