使用opengl绘制太阳、地球、月球。1. 可以用鼠标左键拖拽,用鼠标滚轮缩放。2. 实现了太阳光线照射地球和月球。 3. 添加有纹理。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 44544 2018-12-06 08:27 work.vsworkv14.suo
文件 218624 2015-10-14 09:58 workDebugfreeglut.dll
文件 337408 2015-10-14 09:58 workDebugglew32.dll
文件 350720 2015-10-14 09:58 workDebugglewinfo.exe
文件 43520 2015-10-14 09:58 workDebugglfw3.dll
文件 222720 2015-10-14 09:58 workDebugvisualinfo.exe
文件 921600 2018-12-04 19:00 workDebugwork.pdb
文件 9468 2018-11-09 21:56 workpackages
upengl.core.0.1.0.1.signature.p7s
文件 232 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uildconfigurations.autopkg
文件 1847 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativedefault-propertiesui.xml
文件 7837 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativedocslicense.txt
文件 703 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut.h
文件 9246 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut_ext.h
文件 27148 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut_std.h
文件 943450 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglew.h
文件 660 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglut.h
文件 70092 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglxew.h
文件 63627 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLwglew.h
文件 82172 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLFWglfw3.h
文件 5684 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLFWglfw3native.h
文件 36642 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32freeglut.lib
文件 562210 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32glew32.lib
文件 17748 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32glfw3dll.lib
文件 33672 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64freeglut.lib
文件 553592 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64glew32.lib
文件 17418 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64glfw3dll.lib
文件 4857 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ative
upengl.core.targets
文件 73 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uildpublisher-info.txt
文件 352318 2018-12-04 17:33 workpackages
upengl.core.0.1.0.1
upengl.core.0.1.0.1.nupkg
文件 9467 2018-11-09 13:32 workpackages
upengl.core.redist.0.1.0.1.signature.p7s
............此处省略105个文件信息
#include “loadBMP.h“
texture * sun *earth *moon; //纹理指针
unsigned char * LoadBmpFile(char * filename BITMAPINFOHEADER * bmpInfoHeader) {
FILE * file;
BITMAPFILEHEADER bmpFileHeader;
unsigned char * image;
unsigned int imageIdx = 0;
unsigned char tempRGB;
fopen_s(&file filename “rb“);
if (file == NULL)
return 0;
fread(&bmpFileHeader sizeof(BITMAPFILEHEADER) 1 file); // 读取 BMP 文件头
if (bmpFileHeader.bfType != BITMAP_ID) // 验证是否是一个 BMP 文件
{
fclose(file);
return 0;
}
fread(bmpInfoHeader sizeof(BITMAPINFOHEADER) 1 file); // 读位图信息头
fseek(file bmpFileHeader.bfOffBits SEEK_SET); // 将文件指针移到位图数据的开始处
image = (unsigned char *)malloc(bmpInfoHeader->biSizeImage); // 分配内存给位图数据
if (!image)
{
free(image);
fclose(file);
return 0;
}
fread(image 1 bmpInfoHeader->biSizeImage file); // 读取位图数据
if (image == NULL)
{
fclose(file);
return 0;
}
// 反转 R 和 B 值以得到 RGB,因为位图颜色格式是 BGR
for (imageIdx = 0; imageIdx < bmpInfoHeader->biSizeImage; imageIdx += 3)
{
tempRGB = image[imageIdx];
image[imageIdx] = image[imageIdx + 2];
image[imageIdx + 2] = tempRGB;
}
fclose(file);
return image;
}
texture * LoadTexFile(char * filename) {
BITMAPINFOHEADER texInfo;
texture * thisTexture;
thisTexture = (texture *)malloc(sizeof(texture));
if (thisTexture == NULL)
return 0;
thisTexture->data = LoadBmpFile(filename &texInfo); // 调入纹理数据并检查有效性
if (thisTexture->data == NULL)
{
free(thisTexture);
return 0;
}
thisTexture->width = texInfo.biWidth; // 设置纹理的宽和高
thisTexture->height = texInfo.biHeight;
glGenTextures(1 &thisTexture->texID); // 生成纹理对象名
return thisTexture;
}
BOOL LoadAllTextures() {
sun = LoadTexFile(“sun.bmp“);
if (sun == NULL)
return FALSE;
glBindTexture(GL_TEXTURE_2D sun->texID);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_REPEAT);
gluBuild2DMipmaps(GL_TEXTURE_2D GL_RGBA sun->width sun->height GL_RGB GL_UNSIGNED_BYTE sun->data);
earth = LoadTexFile(“earth.bmp“);
if (earth == NULL)
return FALSE;
glBindTexture(GL_TEXTURE_2D earth->texID);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MIN_FILTER GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_WRAP_S GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_WRAP_T GL_REPEAT);
gluBuild2DMipmaps(GL_TEXTURE_2D GL_RGBA earth->width earth->height GL_RGB GL_UNSIGNED_BYTE earth->data);
moon = LoadTexFile(“moon.bmp“);
if (moon == NULL)
return FALSE;
glBindTexture(GL_TEXTURE_2D moon->texID);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MAG_FILTER GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D GL_TEXTURE_MIN_FIL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 44544 2018-12-06 08:27 work.vsworkv14.suo
文件 218624 2015-10-14 09:58 workDebugfreeglut.dll
文件 337408 2015-10-14 09:58 workDebugglew32.dll
文件 350720 2015-10-14 09:58 workDebugglewinfo.exe
文件 43520 2015-10-14 09:58 workDebugglfw3.dll
文件 222720 2015-10-14 09:58 workDebugvisualinfo.exe
文件 921600 2018-12-04 19:00 workDebugwork.pdb
文件 9468 2018-11-09 21:56 workpackages
upengl.core.0.1.0.1.signature.p7s
文件 232 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uildconfigurations.autopkg
文件 1847 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativedefault-propertiesui.xm
文件 7837 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativedocslicense.txt
文件 703 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut.h
文件 9246 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut_ext.h
文件 27148 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLfreeglut_std.h
文件 943450 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglew.h
文件 660 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglut.h
文件 70092 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLglxew.h
文件 63627 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLwglew.h
文件 82172 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLFWglfw3.h
文件 5684 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativeincludeGLFWglfw3native.h
文件 36642 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32freeglut.lib
文件 562210 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32glew32.lib
文件 17748 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibWin32glfw3dll.lib
文件 33672 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64freeglut.lib
文件 553592 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64glew32.lib
文件 17418 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ativelibx64glfw3dll.lib
文件 4857 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uild
ative
upengl.core.targets
文件 73 2015-10-14 09:58 workpackages
upengl.core.0.1.0.1uildpublisher-info.txt
文件 352318 2018-12-04 17:33 workpackages
upengl.core.0.1.0.1
upengl.core.0.1.0.1.nupkg
文件 9467 2018-11-09 13:32 workpackages
upengl.core.redist.0.1.0.1.signature.p7s
............此处省略105个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)