转到OpenGL LoadMatrixd和GetDoublev问题
在GetDoublev之后,m的内容不会改变。我正在尝试移植一些C代码(基本上是这样的)。我做错了什么 所需的C代码:转到OpenGL LoadMatrixd和GetDoublev问题,opengl,go,Opengl,Go,在GetDoublev之后,m的内容不会改变。我正在尝试移植一些C代码(基本上是这样的)。我做错了什么 所需的C代码: gl.MatrixMode(gl.MODELVIEW) gl.PushMatrix() m := new([16]float64) setIdentity(m) gl.LoadMatrixd((*gl.GLdouble)(&m[0])) gl.Rotated(90, 0, 1, 0) gl.GetDoublev(gl.MODELVIEW_MATRIX, (*gl.G
gl.MatrixMode(gl.MODELVIEW)
gl.PushMatrix()
m := new([16]float64)
setIdentity(m)
gl.LoadMatrixd((*gl.GLdouble)(&m[0]))
gl.Rotated(90, 0, 1, 0)
gl.GetDoublev(gl.MODELVIEW_MATRIX, (*gl.GLdouble)(&m[0]))
gl.PopMatrix()
fmt.Printf("%f", m[0])
// m[0] == forward.x
必须先调用sdl.SetVideoMode(),然后才能使用矩阵函数 你能发布C代码吗?
m:=new([16]float64)
是将数组初始化为0,还是在该点未初始化?哎呀,我正在将矩阵设置为identity,然后再调用LoadMatrixd@JimBuck new()初始化为零值,但是,我认为在上面的代码中没有正确使用setIdentity()是什么如果fmt.Println(m)的输出呢?
//m is float[16] set to identity
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadMatrixf(m);
glRotatef(90, 0,1,0);
glGetFloatv(GL_MODELVIEW_MATRIX, m);
glPopMatrix();