图形学实验报告(2)

2020-02-21 21:34

glBegin(GL_LINES);//绘制出坐标轴 glVertex2f(-1.0f,0.0f);

glVertex2f(1.0f,0.0f);//绘制x轴 glVertex2f(0.0f,1.0f);

glVertex2f(0.0f,-1.0f);//绘制y轴 glEnd();

/*glBegin(GL_LINE_STRIP);

for (x=-1.0f/factor;x<1.0f/factor;x+=0.01f)

glVertex2f(x*factor,x*factor*x*factor*x*factor); glEnd();*/

glBegin(GL_LINE_STRIP);

for (x=-1.0f/factor;x<1.0f/factor;x+=0.01f) glVertex2f(x*factor,x*factor*x*factor); glEnd(); glFlush();

}

int main(int argc, char *argv[]) { }

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow(\抛物线\ glutDisplayFunc(&myDisplay); glutMainLoop(); return 0;

正弦曲线: #include #include const GLfloat factor = 0.1f;

void myDisplay(void) {

GLfloat x;

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES);

glVertex2f(-1.0f, 0.0f);

glVertex2f(1.0f, 0.0f); // 以上两个点可以画x轴 glVertex2f(0.0f, -1.0f);

glVertex2f(0.0f, 1.0f); // 以上两个点可以画y轴 glEnd();

glBegin(GL_LINE_STRIP);

for(x=-1.0f/factor; x<1.0f/factor; x+=0.01f) {

glVertex2f(x*factor, sin(x)*factor); }

glEnd(); glFlush();

}

int main(int argc, char *argv[]) {

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow(\正弦曲线\ glutDisplayFunc(&myDisplay); glutMainLoop(); return 0; }

3、图形变换

使用投影、视口变换、旋转、平移和缩放的编程方法。 //加入了光照效果的太阳和地球 #include

#define WIDTH 400

#define HEIGHT 400

static GLfloat angle = 0.0f;

void myDisplay(void) {

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// 创建透视效果视图

glMatrixMode(GL_PROJECTION); glLoadIdentity();

gluPerspective(90.0f, 1.0f, 1.0f, 20.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity();

gluLookAt(0.0, 5.0, -10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);

// 定义太阳光源,它是一种白色的光源 {

GLfloat sun_light_position[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat sun_light_ambient[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat sun_light_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f}; GLfloat sun_light_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};

glLightfv(GL_LIGHT0, GL_POSITION, sun_light_position);

}

glLightfv(GL_LIGHT0, GL_AMBIENT, sun_light_ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, sun_light_diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, sun_light_specular);

glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); glEnable(GL_DEPTH_TEST);

// 定义太阳的材质并绘制太阳 {

GLfloat sun_mat_ambient[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat sun_mat_diffuse[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat sun_mat_specular[] = {0.0f, 0.0f, 0.0f, 1.0f}; GLfloat sun_mat_emission[] = {0.5f, 0.0f, 0.0f, 1.0f}; GLfloat sun_mat_shininess = 0.0f;

glMaterialfv(GL_FRONT, GL_AMBIENT, sun_mat_ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, sun_mat_diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, sun_mat_specular); glMaterialfv(GL_FRONT, GL_EMISSION, sun_mat_emission); glMaterialf (GL_FRONT, GL_SHININESS, sun_mat_shininess);

glutSolidSphere(2.0, 40, 32);


图形学实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:康普六类大厦方案-PDS-方案 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: