diff --git "a/21551005\350\203\241\345\275\254/homework2/.vs/homework2/v14/.suo" "b/21551005\350\203\241\345\275\254/homework2/.vs/homework2/v14/.suo"
new file mode 100644
index 0000000..f1e9a75
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/.vs/homework2/v14/.suo" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/Debug/homework2.exe" "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.exe"
new file mode 100644
index 0000000..0df66b6
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.exe" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/Debug/homework2.ilk" "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.ilk"
new file mode 100644
index 0000000..e60e7c8
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.ilk" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/Debug/homework2.pdb" "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.pdb"
new file mode 100644
index 0000000..c71b32b
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/Debug/homework2.pdb" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2.opensdf" "b/21551005\350\203\241\345\275\254/homework2/homework2.opensdf"
new file mode 100644
index 0000000..f6b04a6
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2.opensdf" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2.sdf" "b/21551005\350\203\241\345\275\254/homework2/homework2.sdf"
new file mode 100644
index 0000000..42a5c47
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2.sdf" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2.sln" "b/21551005\350\203\241\345\275\254/homework2/homework2.sln"
new file mode 100644
index 0000000..b8f23c2
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2.sln"
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.23107.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "homework2", "homework2\homework2.vcxproj", "{25C2F559-CAF1-49EE-AA43-8F9D0B866796}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Debug|x64.ActiveCfg = Debug|x64
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Debug|x64.Build.0 = Debug|x64
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Debug|x86.ActiveCfg = Debug|Win32
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Debug|x86.Build.0 = Debug|Win32
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Release|x64.ActiveCfg = Release|x64
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Release|x64.Build.0 = Release|x64
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Release|x86.ActiveCfg = Release|Win32
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.log" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.log"
new file mode 100644
index 0000000..e4fd87c
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.log"
@@ -0,0 +1,16 @@
+生成启动时间为 2016/1/13 21:26:53。
+ 1>项目“C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\homework2\homework2.vcxproj”在节点 2 上(Build 个目标)。
+ 1>ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /sdl /Od /Oy- /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Yu"stdafx.h" /Fp"Debug\homework2.pch" /Fo"Debug\\" /Fd"Debug\vc140.pdb" /Gd /TP /analyze- /errorReport:prompt /D _CRT_SECURE_NO_WARNINGS homework2.cpp
+ homework2.cpp
+ 1>c:\users\zz0292\documents\visual studio 2015\projects\homework2\homework2\homework2.cpp(68): warning C4838: 从“double”转换到“GLfloat”需要收缩转换
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\Debug\homework2.exe" /INCREMENTAL /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /Debug /PDB:"C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\Debug\homework2.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\Debug\homework2.lib" /MACHINE:X86 Debug\homework2.res
+ Debug\homework2.obj
+ Debug\stdafx.obj
+ homework2.vcxproj -> C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\Debug\homework2.exe
+ 1>已完成生成项目“C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\homework2\homework2.vcxproj”(Build 个目标)的操作。
+
+已成功生成。
+
+已用时间 00:00:01.44
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.obj.enc" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.obj.enc"
new file mode 100644
index 0000000..f4bf759
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.obj.enc" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.res" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.res"
new file mode 100644
index 0000000..e1dec6f
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.res" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.command.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.command.1.tlog"
new file mode 100644
index 0000000..8e6b300
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.command.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.read.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.read.1.tlog"
new file mode 100644
index 0000000..30a6e5e
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.read.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.write.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.write.1.tlog"
new file mode 100644
index 0000000..96fde75
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/CL.write.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/homework2.lastbuildstate" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/homework2.lastbuildstate"
new file mode 100644
index 0000000..bab3ca4
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/homework2.lastbuildstate"
@@ -0,0 +1,2 @@
+#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit
+Debug|Win32|C:\Users\zz0292\Documents\Visual Studio 2015\Projects\homework2\|
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.command.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.command.1.tlog"
new file mode 100644
index 0000000..e0c0231
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.command.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.read.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.read.1.tlog"
new file mode 100644
index 0000000..ddeefae
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.read.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.write.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.write.1.tlog"
new file mode 100644
index 0000000..598979c
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/link.write.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.command.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.command.1.tlog"
new file mode 100644
index 0000000..e1cd2b1
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.command.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.read.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.read.1.tlog"
new file mode 100644
index 0000000..d6b4418
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.read.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.write.1.tlog" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.write.1.tlog"
new file mode 100644
index 0000000..0b449a2
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/homework2.tlog/rc.write.1.tlog" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.idb" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.idb"
new file mode 100644
index 0000000..8078b9c
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.idb" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.pdb" "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.pdb"
new file mode 100644
index 0000000..71c9b66
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/Debug/vc140.pdb" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/ReadMe.txt" "b/21551005\350\203\241\345\275\254/homework2/homework2/ReadMe.txt"
new file mode 100644
index 0000000..b161106
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/ReadMe.txt"
@@ -0,0 +1,30 @@
+========================================================================
+ 控制台应用程序:homework2 项目概述
+========================================================================
+
+应用程序向导已为您创建了此 homework2 应用程序。
+
+本文件概要介绍组成 homework2 应用程序的每个文件的内容。
+
+
+homework2.vcxproj
+ 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
+
+homework2.vcxproj.filters
+ 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
+
+homework2.cpp
+ 这是主应用程序源文件。
+
+/////////////////////////////////////////////////////////////////////////////
+其他标准文件:
+
+StdAfx.h, StdAfx.cpp
+ 这些文件用于生成名为 homework2.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
+
+/////////////////////////////////////////////////////////////////////////////
+其他注释:
+
+应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。
+
+/////////////////////////////////////////////////////////////////////////////
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/earth.bmp" "b/21551005\350\203\241\345\275\254/homework2/homework2/earth.bmp"
new file mode 100644
index 0000000..5ac02fc
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/earth.bmp" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.aps" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.aps"
new file mode 100644
index 0000000..a210be5
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.aps" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.cpp" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.cpp"
new file mode 100644
index 0000000..bc1bc24
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.cpp"
@@ -0,0 +1,140 @@
+// homework2.cpp : ̨Ӧóڵ㡣
+//
+
+#include "stdafx.h"
+
+
+#include "LoadBMP.h"
+
+void myinit(void)
+{
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_TEXTURE_2D); //öά
+
+ GLfloat light0_ambient[] = { 1, 1, 1, 1 }; //
+ GLfloat light0_diffuse[] = { 1, 1, 1, 1 }; //ɢ
+ GLfloat light0_position[] = { 0, 0, 0, 1 }; //Դλ
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
+ glLightfv(GL_LIGHT0, GL_POSITION, light0_position);
+
+ LoadAllTextures(); //
+}
+
+void myidle()
+{
+ day += angle;
+ glutPostRedisplay();
+
+}
+
+void mymouse(int button, int state, int x, int y)
+{
+ if (state == GLUT_DOWN && button == GLUT_LEFT_BUTTON) {
+ if (first)
+ {
+ glutIdleFunc(myidle);
+ first = !first;
+ }
+ else
+ {
+ glutIdleFunc(0);
+ first = !first;
+ }
+ }
+}
+
+void mykeyboard(unsigned char key, int x, int y)
+{
+ if (key == 27)
+ exit(0);
+}
+
+void mydisplay(void)
+{
+ year = day / 365;
+ month = day / 30;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ GLfloat mat_ambient1[] = { 1,0,0,1 };
+ GLfloat mat_emission[] = { 1,1,1,0 };
+
+ GLfloat mat_ambient2[] = { 0.4,0.4,0.8,1 };
+ GLfloat no_emission[] = { 0,0,0,1 };
+
+ glPushMatrix();
+ glBindTexture(GL_TEXTURE_2D, sun->texID);
+ glRotatef(month, 0.0, 1.0, 0.0); //̫ת
+ glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient1);
+ glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
+ glRotatef(90, -1, 0, 0);
+ gltDrawSphere(1.0, 40, 40); //̫
+ glPopMatrix();
+
+ glPushMatrix();
+ glRotatef(year, 0.0, 1.0, 0.0); //һ̫תת
+ glPushMatrix();
+ glBindTexture(GL_TEXTURE_2D, earth->texID);
+ glTranslatef(3.0, 0.0, 0.0);
+ glRotatef(month, 0.0, 1.0, 0.0); //ת
+ glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient2);
+ glMaterialfv(GL_FRONT, GL_EMISSION, no_emission);
+ glRotatef(90, -1, 0, 0);
+ gltDrawSphere(0.4, 40, 40); //Ƶ
+ glPopMatrix();
+
+ glPushMatrix();
+ glBindTexture(GL_TEXTURE_2D, moon->texID);
+ glTranslatef(3.0, 0.0, 0.0);
+ glRotatef(60, -1, 1, 0);
+ glRotatef(month, 0, 1.0, 0); //Ƶת
+ glTranslatef(0.6, 0.0, 0.0);
+ glRotatef(90, -1, 0, 0);
+ gltDrawSphere(0.07, 20, 20); //
+ glPopMatrix();
+ glPopMatrix();
+
+ glFlush();
+ glutSwapBuffers();
+}
+
+void myreshape(int w, int h)
+{
+ glViewport(0, 0, (GLsizei)w, (GLsizei)h); //ָӿڴС
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 1, 20); //ͶӰ
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ gluLookAt(0.0, -5.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); //ָλ
+}
+
+int main(int argc, char** argv)
+{
+ glutInit(&argc, argv);
+ glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
+ glutInitWindowSize(1000, 600);
+ glutInitWindowPosition(100, 100);
+ glutCreateWindow("̫ģ");
+ myinit();
+
+ glutDisplayFunc(mydisplay);
+ glutReshapeFunc(myreshape);
+ glutIdleFunc(myidle);
+ glutMouseFunc(mymouse);
+ glutKeyboardFunc(mykeyboard);
+
+ glutMainLoop();
+ return 0;
+}
+
+
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.rc" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.rc"
new file mode 100644
index 0000000..866bf2e
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.rc" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj"
new file mode 100644
index 0000000..3281a27
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj"
@@ -0,0 +1,169 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {25C2F559-CAF1-49EE-AA43-8F9D0B866796}
+ Win32Proj
+ homework2
+ 8.1
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+ Use
+ Level3
+ Disabled
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ /D _CRT_SECURE_NO_WARNINGS %(AdditionalOptions)
+
+
+ Windows
+ true
+
+
+
+
+ Use
+ Level3
+ Disabled
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ Use
+ MaxSpeed
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.filters" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.filters"
new file mode 100644
index 0000000..bcd9536
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.filters"
@@ -0,0 +1,47 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+ 头文件
+
+
+
+
+ 源文件
+
+
+ 源文件
+
+
+
+
+ 资源文件
+
+
+
\ No newline at end of file
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.user" "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.user"
new file mode 100644
index 0000000..abe8dd8
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/homework2.vcxproj.user"
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/loadbmp.h" "b/21551005\350\203\241\345\275\254/homework2/homework2/loadbmp.h"
new file mode 100644
index 0000000..8746702
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/loadbmp.h"
@@ -0,0 +1,204 @@
+#define BITMAP_ID 0x4D42
+#define PI 3.1415926
+#include
+#include
+#include
+#include
+#include
+
+#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
+
+//---------- ݽṹ
+typedef struct {
+ int width; //
+ int height; //߶
+ unsigned int texID; // ID
+ unsigned char * data; //ʵ
+}texture;
+
+
+static float year = 0, month = 0, day = 0, angle = 30;
+static bool first = false;
+
+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;
+
+ file = fopen(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_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, moon->width, moon->height, GL_RGB, GL_UNSIGNED_BYTE, moon->data);
+
+ return TRUE;
+}
+
+void gltDrawSphere(GLfloat fRadius, GLint iSlices, GLint iStacks)
+{
+ GLfloat drho = (GLfloat)(3.141592653589) / (GLfloat)iStacks;
+ GLfloat dtheta = 2.0f * (GLfloat)(3.141592653589) / (GLfloat)iSlices;
+ GLfloat ds = 1.0f / (GLfloat)iSlices;
+ GLfloat dt = 1.0f / (GLfloat)iStacks;
+ GLfloat t = 1.0f;
+ GLfloat s = 0.0f;
+ GLint i, j;
+
+ for (i = 0; i < iStacks; i++)
+ {
+ GLfloat rho = (GLfloat)i * drho;
+ GLfloat srho = (GLfloat)(sin(rho));
+ GLfloat crho = (GLfloat)(cos(rho));
+ GLfloat srhodrho = (GLfloat)(sin(rho + drho));
+ GLfloat crhodrho = (GLfloat)(cos(rho + drho));
+
+
+ glBegin(GL_TRIANGLE_STRIP);
+ s = 0.0f;
+ for (j = 0; j <= iSlices; j++)
+ {
+ GLfloat theta = (j == iSlices) ? 0.0f : j * dtheta;
+ GLfloat stheta = (GLfloat)(-sin(theta));
+ GLfloat ctheta = (GLfloat)(cos(theta));
+
+ GLfloat x = stheta * srho;
+ GLfloat y = ctheta * srho;
+ GLfloat z = crho;
+
+ glTexCoord2f(s, t);
+ glNormal3f(x, y, z);
+ glVertex3f(x * fRadius, y * fRadius, z * fRadius);
+
+ x = stheta * srhodrho;
+ y = ctheta * srhodrho;
+ z = crhodrho;
+ glTexCoord2f(s, t - dt);
+ s += ds;
+ glNormal3f(x, y, z);
+ glVertex3f(x * fRadius, y * fRadius, z * fRadius);
+ }
+ glEnd();
+
+ t -= dt;
+ }
+}
+
+void drawCircle(GLfloat r)
+{
+ int j = 0;
+ glBegin(GL_POINTS);
+ for (j = 0; j<100; j++)
+ {
+ GLfloat theta = j * 2 * PI / 100;
+ glVertex3f(r*cos(theta), 0.0f, r*sin(theta));
+ }
+ glEnd();
+}
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/moon.bmp" "b/21551005\350\203\241\345\275\254/homework2/homework2/moon.bmp"
new file mode 100644
index 0000000..b954bfc
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/moon.bmp" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/resource.h" "b/21551005\350\203\241\345\275\254/homework2/homework2/resource.h"
new file mode 100644
index 0000000..9ad831e
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/resource.h"
@@ -0,0 +1,16 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by homework2.rc
+//
+#define IDB_BITMAP1 101
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 103
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1001
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.cpp" "b/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.cpp"
new file mode 100644
index 0000000..a7e6309
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.cpp"
@@ -0,0 +1,8 @@
+// stdafx.cpp : ֻļԴļ
+// homework2.pch ΪԤͷ
+// stdafx.obj ԤϢ
+
+#include "stdafx.h"
+
+// TODO: STDAFX.H κĸͷļ
+//ڴļ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.h" "b/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.h"
new file mode 100644
index 0000000..baa4bbc
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/stdafx.h"
@@ -0,0 +1,15 @@
+// stdafx.h : ϵͳļİļ
+// Ǿʹõĵ
+// ضĿİļ
+//
+
+#pragma once
+
+#include "targetver.h"
+
+#include
+#include
+
+
+
+// TODO: ڴ˴óҪͷļ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/sun.bmp" "b/21551005\350\203\241\345\275\254/homework2/homework2/sun.bmp"
new file mode 100644
index 0000000..5f1fc9f
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/homework2/sun.bmp" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/homework2/targetver.h" "b/21551005\350\203\241\345\275\254/homework2/homework2/targetver.h"
new file mode 100644
index 0000000..416cebf
--- /dev/null
+++ "b/21551005\350\203\241\345\275\254/homework2/homework2/targetver.h"
@@ -0,0 +1,8 @@
+#pragma once
+
+// SDKDDKVer.h õ߰汾 Windows ƽ̨
+
+// ҪΪǰ Windows ƽ̨Ӧó WinSDKVer.h
+// _WIN32_WINNT ΪҪֵ֧ƽ̨Ȼٰ SDKDDKVer.h
+
+#include
diff --git "a/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-1e994fca.ipch" "b/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-1e994fca.ipch"
new file mode 100644
index 0000000..a088a97
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-1e994fca.ipch" differ
diff --git "a/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-f6172d28.ipch" "b/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-f6172d28.ipch"
new file mode 100644
index 0000000..851dfa1
Binary files /dev/null and "b/21551005\350\203\241\345\275\254/homework2/ipch/HOMEWORK2-22afcf94/HOMEWORK2-f6172d28.ipch" differ