xna中的倾斜投影

问题描述

| 我正在尝试在xna框架中实现倾斜投影(http://en.wikipedia.org/wikI/Oblique_projection):
float cos = (float)Math.Cos(DegreetoRadian(45)) * -1; 
float sin = (float)Math.Sin(DegreetoRadian(45)) * -1; 

Matrix obliqueProjection = new Matrix( 
                                  1,cos,1,sin,1); 

Matrix orthographicProjection = Matrix.CreateOrthographic(10,10,-1,100000); 

projection = orthographicProjection*obliqueProjection; 
如您所见,我只是将正投影与斜投影相乘。 我得到的是: http://imageshack.us/photo/my-images/835/oblique1.png/ 它基本上是正射投影的样子,但是有一些奇怪的远切。 如何获得正确的倾斜投影? 提前Thx     

解决方法

        Diki回答:http://forums.create.msdn.com/forums/p/85032/513412.aspx#513412 代码需要像这样更改:
Matrix obliqueProjection = new Matrix(  
                                  1,1,cos,sin,1);  

projection = obliqueProjection * orthographicProjection;  
    ,        对于初学者,您可以实施适当的公式。 维基百科文章说,投影矩阵使用
0.5 * cos
0.5 * sin
,而您的版本仅使用
cos
sin
。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...