OpenGL-入门-初级日地月

本文介绍了OpenGL中的gluPerspective函数,用于定义视景体的大小。参数包括视角角度、宽高比、近裁剪面和远裁剪面距离。正确设置这些参数能避免物体扭曲,并确保三维场景的正确渲染。使用gluPerspective前需调用glLoadIdentity以设置单位矩阵。
摘要由CSDN通过智能技术生成

学习于OpenGL入门、OpenGL编程指南、gluPerspective

#include "pch.h"
#include <GL/glut.h> 
#include <iostream>
#include <stdio.h> 
#include <time.h> 
const GLdouble Pi = 3.1415926536;

/*
	太阳半径69600km
	地球半径6378km
	月球半径1739km
	地球到太阳的距离约为1.5亿km=150000000km
	月亮到地球的距离约为		380000km
*/

/*修改不至于比例差距太大
	太阳半径69600000km(放大100倍)
	地球半径15945000km(放大 2500 倍)
	月球半径4345000km (放大 2500 倍)
	地球到太阳的距离约为1.5亿km=150000000km(保持不变)
	月亮到地球的距离约为	    38000000km(放大 100 倍)
*/

/*
	假设三个天体都是球体,都处于同一平面
	假设每个月都是30天,一年12个月,共有360天
	太阳中心为原点,天体轨迹所在的平面表示了 X 轴与 Y 轴决定的平面,
	且每年第一天,地球在 X 轴正方向上,月亮在地球的正 X 轴方向。 
*/

static int day = 200;

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();     
	timegap = (current - last) / (double
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值