我用mfc + opengl 画三角形
代码如下:
怎么只能看到黑屏,却看不见三角形
void CTes1View::DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // 重置视口glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0glBegin(GL_TRIANGLES); // 绘制三角形glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点glVertex3f(-1.0f,-1.0f, 0.0f); // 左下glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
glEnd(); // 三角形绘制结束 glFinish();
}
代码如下:
怎么只能看到黑屏,却看不见三角形
void CTes1View::DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // 重置视口glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0glBegin(GL_TRIANGLES); // 绘制三角形glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点glVertex3f(-1.0f,-1.0f, 0.0f); // 左下glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
glEnd(); // 三角形绘制结束 glFinish();
}
解决方案 »
- vc如何用代码修改mac地址,不重启
- 窗口拖结束时有何消息
- 如何使一个对话框在模态与非模态进行切换?在线等
- 谁知道sql server传送的数据包的加密格式
- 从CWnd继承下来的类需不需要自己注册窗口类啊?
- 我想将一个cmap对象保存到另一个cmap对象中,请问怎样实现!!!此问题已经困饶我很久了!请高手赐教!!!
- 火速求救:如何改变窗体标题?
- 最近想学vc,我希望循序渐进,在这个过程,我该看些什么图书呢?
- 一个类似于牛角尖的问题(多余的CONST),不能忽视,请各位高手详细说明!!谢谢!
- 请问IDT表与中断向量表的区别。
- 我有一个字符串,里面有数个全角的逗号,现在我要将它们转化成半角的逗号,如何做?
- 问一下保存文件的时候如何保存成文本格式的啊??
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
glLoadIdentity(); // 重置视口glColor4f(1.0f, 1.0f, 1.0f, 1.0f);glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0glBegin(GL_TRIANGLES); // 绘制三角形glVertex3f( 0.0f, 1.0f, 0.0f); // 上顶点glVertex3f(-1.0f,-1.0f, 0.0f); // 左下glVertex3f( 1.0f,-1.0f, 0.0f); // 右下
glEnd(); // 三角形绘制结束 glFinish();
#include <stdlib.h>void init (void)
{
glClearColor(0.0, 1.0, 0.0,0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70.0, 1.0, 1, 1000);
gluLookAt(0.0,500.0,0.0, 0.0,0.0,0.0, 1.0,0.0,0.0);
}
// ball statevoid display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin(GL_POLYGON);
glNormal3d(0, -1, 0);
glColor3f(0.0,0.0,1.0);
glVertex3f(100, 0, 100);
glVertex3f(100, 0, -100);
glVertex3f(-100,0, -100);
glVertex3f(-100,0, 100);
glEnd();
glFlush();
}int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
gluLookAt(0,0,0, 0,0,-1, 0,1,0);就可以了
把你的代码移动到display函数里面,保留前面glMatrixMode(...);那两行就可以了