MFC OpenGl 立方体
// myGl.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include <Windows.h>
#include "freeglut.h"
#include "freeglut_ext.h"
//#include "freeglut_internal.h"
#include "freeglut_std.h"
//#include "freeglut_teapot_data.h"
#include "glut.h"
#include <stdlib.h>
#include <stdio.h>
#include<iostream>
#include<conio.h>
#include <stdarg.h>
#include <math.h>
const int win_w = 700, win_h = 700;
GLfloat default_matrix[16];
GLfloat modelview_matrix[16];
GLfloat modelview_z_dis;
GLfloat x_min = .0, x_max = 20.0, y_min = .0, y_max = 20.0, z_min = .0, z_max = 20.0;
static GLuint texName;
void xyz_line(float len)
{
GLfloat color[] = { .0, .0, .0, 1.0 };
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glBegin(GL_LINES);
color[0] = 1.0; color[1] = .0; color[2] = .0;
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glVertex3f(.0, .0, .0);
glVertex3f(len, .0, .0);
color[0] = .0; color[1] = 1.0; color[2] = .0;
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glVertex3f(.0, .0, .0);
glVertex3f(.0, len, .0);
color[0] = .0; color[1] = .0; color[2] = 1.0;
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glVertex3f(.0, .0, .0);
glVertex3f(.0, .0, len);
glEnd();
}
void draw()
{
// 绘制一个灰色的球
GLfloat color[] = { .4f, .4f, .4f, 1.0f };
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 30.0);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(7.5, 7.5, 25.0);
glutSolidSphere(5.0, 30, 50);
glPopMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 30.0);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(7.5, 7.5, -10.0);
glutSolidSphere(5.0, 30, 50);
glPopMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 30.0);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(7.5, 25.0, 7.5);
glutSolidSphere(5.0, 30, 50);
glPopMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 30.0);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(7.5, -10.0, 7.5);
glutSolidSphere(5.0, 30, 50);
glPopMatrix();
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, color);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 30.0);
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(25.0, 7.5, 7.5);
glutSolidSphere(5.0,