我有以下照片的代码显示功能:

glLoadIdentity();
gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz);
// called as: gluLookAt(20, 5, 5, -20, 5, 5, 0, 1, 0);

axis();
glutWireCube (1.);

glFlush ();

axis() 画线(0,0,0)至(10,0,0),(0,10,0)和(0,10,0),加上一条线(1,0,0)至(1,3,0).

我重塑功能包含以下内容:

glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(45.0, (GLsizei) w / (GLsizei) h, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);

这个图像显示结果的运行程序 1. 作为参数 glutWireCube:

glutWireCube(1.)

正如你可以看到,多维数据集不是为中心周围(0,0,0)作为文件说,这应该是:

立方体为中心的模特 坐标的原产地(...) (来源)

如果我运行的程序 5. 作为的说法,该魔方是流离失所者更进一步:

glutWireCube(5.)

这是为什么,我怎么地方立方体(0,0,0)?

进一步信息

不要紧,如果我开关的顺序 axis()glutWireCube.周围 axis()glPushMatrix()glPopMatrix() 不能解决它。

解决方案

我修改 gluPerspective 开始寻找进一步远离摄像机,现在Z缓冲正常工作,因此很清楚的是立方体放置在原籍。

有帮助吗?

解决方案

你确定轴不弄乱视图矩阵?

如果你把它叫做立方体的绘制后会发生什么?

编辑补充:

其实......在照片仔细看,它看起来像它可能的的以原点为中心。

立方体的中心似乎与3个轴的交点恰好对齐。看起来很可疑的唯一的事情是,红线不超过白边写。你有Z缓冲设置正确?

其他提示

它可能是正确的,我认为这是难以确定由于透...但我猜测它不是自盯着一个点。

快速排除 axis() 不是修改模型观矩阵中,环绕的呼叫与矩阵推/持久性有机污染物:

glPushMatrix();
axis();
glPopMatrix();

事调查/检查:

  1. 这是整个窗口?似乎有些奇怪的观点是下一个角落。
  2. 它不会帮助如果你加入一个增加的旋转之前呈现?这可以使其更易于确定视角,通过给予更多的线索。
  3. 你也可以尝试移动"照相机"的周围,通过改变的参数 gluLookAt() 动态。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top