前言
最近学Computer Graphics的时候,第一次大作业是写一个太阳系。由于老师要求松,自己又一直拖着没交,最后干脆直接总写了一个带纹理、光照的太阳系。交上去之后发现有点问题:题目要求月亮和地球绕着不同的方向旋转,这里没想到直接把它们平面化了。。。不过这也好,直接放上来间接防抄袭了。。。所以现在把代码发布如下,希望能对各位同袍有一些帮助。
注意复制代码后不能直接运行,需要glut库。可自行前往官网下载配置即可。
运行环境 Visual Studio 2017,语言C++。
MySolar
#include <stdlib.h>
#include<cmath>
#include<stdlib.h>
#include "glut.h"
#include <windows.h>
using namespace std;
bool bPersp = false;
bool bWire = false;
int year = 0, day = 0, marsYear = 0;
int speed = 12;
int wHeight = 0;
int wWidth = 0;
int state = 1;
float light_angle = 0;
float light_radius = 8.0;
float eye[] = {
5.5, 1.7, 1.7 };
float center[] = {
0, 0, 0 };
GLUquadricObj *g_g;
void lightPosition()
{
float y, z;
y = light_radius*cos(light_angle);
z = light_radius*sin(light_angle);
float light_position[] = {
3.1, y, z, 0.0 };
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
}
void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
lightPosition();
glShadeModel(GL_SMOOTH);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
g_g = gluNewQuadric();
}
void

本文介绍了作者在学习计算机图形学时完成的一个大作业——创建一个简易的太阳系模型,包括纹理和光照效果。虽然原本要求地球和月亮有不同的旋转方向,但作者将其简化为在同一平面上。提供了代码分享,需要glut库支持,适用于Visual Studio 2017环境。
最低0.47元/天 解锁文章
946

被折叠的 条评论
为什么被折叠?



