【发布时间】:2013-06-08 19:36:09
【问题描述】:
我正在编写一个函数来创建透视投影矩阵,但我遇到了一些错误。你能帮助我吗? 我用'-'标记了错误的行
typedef GLfloat mat4x4[16];
功能:
void perspective(float fovy, float aspect, float near, float far, mat4x4& mat)
{
for(int i=0;i<16;i++)
mat[i]=0;
-float range = tan(degreesToRadians(fovy)/2.0f) * near;
float left = range * aspect;
float right = range * aspect;
float bottom = range;
float top = range;
-mat[0] = (2.0f * near) / (right - left);
-mat[5] = (2.0f * near) / (top - bottom);
--mat[10] = (far + near) / (far - near);
-mat[11] = 1.0f;
-mat[14] = (2.0f * far * near) / (far - near);
}
错误:
In function 'void perspective(float, float, float, float, GLfloat (&)[16])':
błąd:expected primary-expression before ';' token
błąd:expected primary-expression before ')' token
błąd:expected primary-expression before ')' token
błąd:expected primary-expression before ')' token
błąd:expected primary-expression before ')' token
błąd:expected primary-expression before ')' token
błąd:expected primary-expression before ')' token
【问题讨论】:
-
您认为
-float是什么意思?同样,-mat[0] = ...可能有意义,但我对此表示怀疑。 -
在代码中它不是 -float 它只是浮动
-
我刚刚标记了错误的行
-
啊,我明白了。您应该始终发布导致错误的确切代码,以便人们可以复制/粘贴/编译。
-
in line --mat[10] = (far + near) / (far - near);我使用了 '-' 两次,因为它给了我 2 个错误
标签: c++ function matrix syntax-error