参考文章:
http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html
对应上面教程OpenGL入门六,实现地球绕着太阳转,月亮绕着地球转,教程的代码直接就可以使用。
一点小提示:在上面参考教程的入门五中,按照教程中设置的太阳、地球、月亮的半径是无法画出相应的球的,因为值设的太大了,根本画不下。所以可以照着下面的代码修改一下球的半径以及观察点的位置,就可以画出静止不动的三个球了。
在我的实现中就不做前面静止的部分了,是直接动起来的。
#include <GL/glut.h>
#include <stdio.h>
#include <time.h>
// 太阳、地球和月亮
// 假设每个月都是12天
// 一年12个月,共是360天
static int day = 200; // day的变化:从0到359
double CalFrequency()
{
static int count;
static double save;
static clock_t last, current;
double timegap;
++count;
if (count <= 50)
return save;
count = 0;
last = current;
current = clock()