opengl的配置和太陽 地球 月球演示

2021-09-14 04:28:38 字數 1776 閱讀 6016

詳細配置過程鏈結

下面介紹opengl例項,太陽-地球-月球演示

建立乙個控制台程式

sun.cpp

#include "stdafx.h"

#include #include void light(void)

; glfloat ambient = ;

glfloat diffuse = ;

glfloat specular = ;

gllightfv(gl_position, gl_position, position);

gllightfv(gl_light0, gl_ambient, ambient);

gllightfv(gl_light0, gl_diffuse, diffuse);

gllightfv(gl_light0, gl_specular, specular);

glenable(gl_light0);

glenable(gl_lighting);

}void initial()

void timerfunc(int value)

void changesize(int w, int h)

void display(void)

; glfloat wall_mat_diffuse = ;

glfloat wall_mat_specular = ;

glfloat wall_mat_emission = ;

glfloat wall_mat_shininess = 9.846150;

glmaterialfv(gl_front, gl_ambient, wall_mat_ambient);

glmaterialfv(gl_front, gl_diffuse, wall_mat_diffuse);

glmaterialfv(gl_front, gl_specular, wall_mat_specular);

//glmaterialfv(gl_front, gl_emission, wall_mat_emission);

glmaterialf(gl_front, gl_shininess, wall_mat_shininess);

}static glfloat angle=0.0f;//光照角度

static float felect1 = 0.0f;

static float felect2 = 0.0f; // 繞星球旋轉的角度

glclear(gl_color_buffer_bit | gl_depth_buffer_bit); //清除顏色和深度緩衝區

; felect2 += 10.0f;// 增加旋轉步長,產生動畫效果

felect1 += 2.0f;// 增加旋轉步長,產生動畫效果

angle+=2.0f;

if(angle>360.0f)angle=2.0f;

if(felect2>360.0f)felect2=10.0f;

if(felect1>360.0f)felect1=2.0f;

glutswapbuffers();

}int main(int argc, char* ar**)

#include "stdafx.h"

//

#include "stdafx.h"

////

//int main()

////

效果圖

OpenGL 地球,月亮,太陽 相對運動

file earch moon sun.c 每個月,月亮繞地球一圈,每年,地球繞太陽一圈。為簡單起見,假設每個月30天,一年共30x12 360 天。假設天體都是球形,處於同一平面,太陽不動。單位 km 放大倍數 太陽半徑 696000 100 69600000 地球半徑 6378 2500 159...

OpenGL 太陽 地球 月球模型模擬動畫

源 include define glut disable atexit hack include static float year 0,day 0 void init void void display void void spindisplay void day day 0.06 if day...

2023年地球與太陽的磁極同時顛倒 可能引發混亂

2012年地球與太陽的磁極同時顛倒 可能引發混亂 2005年03月02日03 51 重慶晨報 中國飛碟資訊網 ufo 電腦模擬顯示 2012年地球與太陽的磁極同時顛倒,可能引發系列混亂 磁力危機威脅地球 據印度報業托拉斯3月1日訊息,一項電腦模擬 顯示,地球與太陽的磁極將於2012年發生顛倒,所引發...