我一直在试图围绕我的线性和矢量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 –