Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转到OpenGL LoadMatrixd和GetDoublev问题_Opengl_Go - Fatal编程技术网

转到OpenGL LoadMatrixd和GetDoublev问题

转到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

在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.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();