diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.pbxproj" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..591eefa --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.pbxproj" @@ -0,0 +1,252 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6413D1801C16D7BF001B684D /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6413D17F1C16D7BF001B684D /* GLUT.framework */; }; + 6413D1821C16D7C7001B684D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6413D1811C16D7C7001B684D /* OpenGL.framework */; }; + 6413D1841C16EB4C001B684D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6413D1781C16D7A9001B684D /* main.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 6413D1731C16D7A9001B684D /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 6413D1751C16D7A9001B684D /* solar */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = solar; sourceTree = BUILT_PRODUCTS_DIR; }; + 6413D1781C16D7A9001B684D /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 6413D17F1C16D7BF001B684D /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = System/Library/Frameworks/GLUT.framework; sourceTree = SDKROOT; }; + 6413D1811C16D7C7001B684D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6413D1721C16D7A9001B684D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6413D1821C16D7C7001B684D /* OpenGL.framework in Frameworks */, + 6413D1801C16D7BF001B684D /* GLUT.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6413D16C1C16D7A9001B684D = { + isa = PBXGroup; + children = ( + 6413D1811C16D7C7001B684D /* OpenGL.framework */, + 6413D17F1C16D7BF001B684D /* GLUT.framework */, + 6413D1771C16D7A9001B684D /* solar */, + 6413D1761C16D7A9001B684D /* Products */, + ); + sourceTree = ""; + }; + 6413D1761C16D7A9001B684D /* Products */ = { + isa = PBXGroup; + children = ( + 6413D1751C16D7A9001B684D /* solar */, + ); + name = Products; + sourceTree = ""; + }; + 6413D1771C16D7A9001B684D /* solar */ = { + isa = PBXGroup; + children = ( + 6413D1781C16D7A9001B684D /* main.cpp */, + ); + path = solar; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6413D1741C16D7A9001B684D /* solar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6413D17C1C16D7A9001B684D /* Build configuration list for PBXNativeTarget "solar" */; + buildPhases = ( + 6413D1711C16D7A9001B684D /* Sources */, + 6413D1721C16D7A9001B684D /* Frameworks */, + 6413D1731C16D7A9001B684D /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = solar; + productName = solar; + productReference = 6413D1751C16D7A9001B684D /* solar */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6413D16D1C16D7A9001B684D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0710; + ORGANIZATIONNAME = greeting; + TargetAttributes = { + 6413D1741C16D7A9001B684D = { + CreatedOnToolsVersion = 7.1.1; + }; + }; + }; + buildConfigurationList = 6413D1701C16D7A9001B684D /* Build configuration list for PBXProject "solar" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 6413D16C1C16D7A9001B684D; + productRefGroup = 6413D1761C16D7A9001B684D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6413D1741C16D7A9001B684D /* solar */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 6413D1711C16D7A9001B684D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6413D1841C16EB4C001B684D /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 6413D17A1C16D7A9001B684D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 6413D17B1C16D7A9001B684D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + }; + name = Release; + }; + 6413D17D1C16D7A9001B684D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 6413D17E1C16D7A9001B684D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6413D1701C16D7A9001B684D /* Build configuration list for PBXProject "solar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6413D17A1C16D7A9001B684D /* Debug */, + 6413D17B1C16D7A9001B684D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6413D17C1C16D7A9001B684D /* Build configuration list for PBXNativeTarget "solar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6413D17D1C16D7A9001B684D /* Debug */, + 6413D17E1C16D7A9001B684D /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6413D16D1C16D7A9001B684D /* Project object */; +} diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" new file mode 100644 index 0000000..11f5cce --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" @@ -0,0 +1,7 @@ + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..1fea324 Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..b8afc47 Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" @@ -0,0 +1,5 @@ + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" new file mode 100644 index 0000000..64d56bf --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..abb9f5b --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + solar.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 6413D1741C16D7A9001B684D + + primary + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" new file mode 100644 index 0000000..0bd3fbe --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..abb9f5b --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + solar.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 6413D1741C16D7A9001B684D + + primary + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework1/solar/main.cpp" "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar/main.cpp" new file mode 100644 index 0000000..9314b92 --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework1/solar/main.cpp" @@ -0,0 +1,66 @@ +// +// main.cpp +// solar +// +// Created by xuhui on 9/12/15. +// Copyright © 2015 xuhui. All rights reserved. +// + +#include +#include +#include + +static int day = 360; + + +void draw() +{ + //sun + glColor3f(1.0f, 0.0f, 0.0f); + glutSolidSphere(49600000, 20, 20); + //earth + glColor3f(0.0f, 0.0f, 1.0f); + glRotatef(day/360.0*360.0, 0.0f, 0.0f, -1.0f); + glTranslatef(150000000, 0.0f, 0.0f); + glutSolidSphere(15945000, 20, 20); + //moon + glColor3f(1.0f, 1.0f, 1.0f); + glRotatef(day/30.0*360.0 - day/360.0*360.0, 0.0f, 0.0f, -1.0f); + glTranslatef(38000000, 0.0f, 0.0f); + glutSolidSphere(4345000, 20, 20); +} + +void displayFunc(void) +{ + glEnable(GL_DEPTH_TEST); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(75, 1, 1, 400000000); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + gluLookAt(0, -210000000, 210000000, 0, 0, 0, 0, 0, 1); + draw(); + glFlush(); + glutSwapBuffers(); +} + +void idleFunc(void) +{ + day = day%361; + ++day; + displayFunc(); +} + +int main(int argc, char** argv) +{ + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); + glutInitWindowPosition(100, 100); + glutInitWindowSize(400, 400); + glutCreateWindow("homework"); + glutDisplayFunc(&displayFunc); + glutIdleFunc(&idleFunc); + glutMainLoop(); + return 0; +} diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.pbxproj" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..591eefa --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.pbxproj" @@ -0,0 +1,252 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6413D1801C16D7BF001B684D /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6413D17F1C16D7BF001B684D /* GLUT.framework */; }; + 6413D1821C16D7C7001B684D /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6413D1811C16D7C7001B684D /* OpenGL.framework */; }; + 6413D1841C16EB4C001B684D /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6413D1781C16D7A9001B684D /* main.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 6413D1731C16D7A9001B684D /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 6413D1751C16D7A9001B684D /* solar */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = solar; sourceTree = BUILT_PRODUCTS_DIR; }; + 6413D1781C16D7A9001B684D /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 6413D17F1C16D7BF001B684D /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = System/Library/Frameworks/GLUT.framework; sourceTree = SDKROOT; }; + 6413D1811C16D7C7001B684D /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6413D1721C16D7A9001B684D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6413D1821C16D7C7001B684D /* OpenGL.framework in Frameworks */, + 6413D1801C16D7BF001B684D /* GLUT.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6413D16C1C16D7A9001B684D = { + isa = PBXGroup; + children = ( + 6413D1811C16D7C7001B684D /* OpenGL.framework */, + 6413D17F1C16D7BF001B684D /* GLUT.framework */, + 6413D1771C16D7A9001B684D /* solar */, + 6413D1761C16D7A9001B684D /* Products */, + ); + sourceTree = ""; + }; + 6413D1761C16D7A9001B684D /* Products */ = { + isa = PBXGroup; + children = ( + 6413D1751C16D7A9001B684D /* solar */, + ); + name = Products; + sourceTree = ""; + }; + 6413D1771C16D7A9001B684D /* solar */ = { + isa = PBXGroup; + children = ( + 6413D1781C16D7A9001B684D /* main.cpp */, + ); + path = solar; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6413D1741C16D7A9001B684D /* solar */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6413D17C1C16D7A9001B684D /* Build configuration list for PBXNativeTarget "solar" */; + buildPhases = ( + 6413D1711C16D7A9001B684D /* Sources */, + 6413D1721C16D7A9001B684D /* Frameworks */, + 6413D1731C16D7A9001B684D /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = solar; + productName = solar; + productReference = 6413D1751C16D7A9001B684D /* solar */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6413D16D1C16D7A9001B684D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0710; + ORGANIZATIONNAME = greeting; + TargetAttributes = { + 6413D1741C16D7A9001B684D = { + CreatedOnToolsVersion = 7.1.1; + }; + }; + }; + buildConfigurationList = 6413D1701C16D7A9001B684D /* Build configuration list for PBXProject "solar" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 6413D16C1C16D7A9001B684D; + productRefGroup = 6413D1761C16D7A9001B684D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6413D1741C16D7A9001B684D /* solar */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 6413D1711C16D7A9001B684D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6413D1841C16EB4C001B684D /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 6413D17A1C16D7A9001B684D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 6413D17B1C16D7A9001B684D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + }; + name = Release; + }; + 6413D17D1C16D7A9001B684D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 6413D17E1C16D7A9001B684D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6413D1701C16D7A9001B684D /* Build configuration list for PBXProject "solar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6413D17A1C16D7A9001B684D /* Debug */, + 6413D17B1C16D7A9001B684D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6413D17C1C16D7A9001B684D /* Build configuration list for PBXNativeTarget "solar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6413D17D1C16D7A9001B684D /* Debug */, + 6413D17E1C16D7A9001B684D /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6413D16D1C16D7A9001B684D /* Project object */; +} diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" new file mode 100644 index 0000000..11f5cce --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/contents.xcworkspacedata" @@ -0,0 +1,7 @@ + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..1fea324 Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/greeting.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..bfa0845 Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/project.xcworkspace/xcuserdata/xuhui.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" @@ -0,0 +1,5 @@ + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" new file mode 100644 index 0000000..64d56bf --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/solar.xcscheme" @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..abb9f5b --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/greeting.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + solar.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 6413D1741C16D7A9001B684D + + primary + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" new file mode 100644 index 0000000..0bd3fbe --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/solar.xcscheme" @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..abb9f5b --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar.xcodeproj/xcuserdata/xuhui.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + solar.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 6413D1741C16D7A9001B684D + + primary + + + + + diff --git "a/Nb15156\345\276\220\350\276\211/homework/homework2/solar/main.cpp" "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar/main.cpp" new file mode 100644 index 0000000..6fb08c7 --- /dev/null +++ "b/Nb15156\345\276\220\350\276\211/homework/homework2/solar/main.cpp" @@ -0,0 +1,312 @@ + +#include +#include +#include +#include +#include +#include +#define WIDTH 700 +#define HEIGHT 700 +#define TimePast 1 +#define PI 3.1415926535 +#define Float2(name, value0, value1) ((name)[0])=(value0), ((name)[1])=(value1) +#define Float3(name, value0, value1, value2) ((name)[0])=(value0), \ +((name)[1])=(value1), ((name)[2])=(value2) +#define Float4(name, value0, value1, value2, value3) ((name)[0])=(value0), \ +((name)[1])=(value1), ((name)[2])=(value2), ((name)[3])=(value3) +#define RFloat2(name) ((name)[0]), ((name)[1]) +#define RFloat3(name) ((name)[0]), ((name)[1]), ((name)[2]) +#define RFloat4(name) ((name)[0]), ((name)[1]), ((name)[2]), ((name)[3]) +typedef GLfloat (Float2)[2]; +typedef GLfloat (Float3)[3]; +typedef GLfloat Float; +typedef GLfloat (Float4)[4]; + + +class Planet { + public: + Float4 Color; + Float Radius; + Float SelfSpeed; + Float Speed; + Float Distance; + Planet * ParentPlanet; + + virtual void Draw() { DrawPlanet(); } + virtual void Update(long TimeSpan); + + Planet(Float Radius, Float Distance, Float Speed, Float SelfSpeed, Planet * Parent); + + // 对普通的行星进行移动和转动 + void DrawPlanet(); + + protected: + Float AlphaSelf, Alpha; + }; + +class MatPlanet : public Planet { + public: + virtual void Draw() { DrawMat(); DrawPlanet(); } + + MatPlanet(Float Radius, Float Distance, Float Speed, Float SelfSpeed, + Planet * Parent, Float3 color); + // 对材质进行设置 + void DrawMat(); + }; + +class LightPlanet : public MatPlanet { + public: + virtual void Draw() { DrawLight(); DrawMat(); DrawPlanet(); } + + LightPlanet(Float Radius, Float Distance, Float Speed, Float SelfSpeed, + Planet * Parent, Float3 color); + + // 对光线进行设置 + void DrawLight(); + }; + +Planet::Planet(Float Radius, Float Distance, Float Speed, Float SelfSpeed, Planet * Parent) { + Float4(Color, 0.8f, 0.8f, 0.8f, 1.0f); + this->Radius = Radius; + this->SelfSpeed = SelfSpeed; + if (Speed > 0) + this->Speed = 360.0f / Speed; + AlphaSelf = Alpha= 0; + this->Distance = Distance; + ParentPlanet = Parent; + } + +// 对普通的行星进行移动和转动 +void Planet::DrawPlanet() { + + glEnable(GL_LINE_SMOOTH); + glEnable(GL_BLEND); + + int n = 1440; + + glPushMatrix(); + { + // 公转 + if (ParentPlanet != 0 && ParentPlanet->Distance > 0) { + glRotatef(ParentPlanet->Alpha, 0, 0, 1); + glTranslatef(ParentPlanet->Distance, 0.0, 0.0); + + glBegin(GL_LINES); + for(int i=0; iDraw(); + + glutSwapBuffers(); + } + +void OnUpdate(void) { + // 实际更新 + for (int i=0; iUpdate(TimePast); + OnDraw(); + } + +// 每次按键移动的距离 +#define OFFSET (20000000 * KK) + +// 按键操作变化视点 +// w(+y方向) a(-x方向) d(+x方向) x(-y方向) s(+z 方向) S(-z 方向) r(reset) +void keyboard (unsigned char key, int x, int y) { + switch (key) { + case 'w': eyeY += OFFSET; break; + case 's': eyeZ += OFFSET; break; + case 'S': eyeZ -= OFFSET; break; + case 'a': eyeX -= OFFSET; break; + case 'd': eyeX += OFFSET; break; + case 'x': eyeY -= OFFSET; break; + case 'r': + eyeX = 0; eyeY = REST_Y; eyeZ= REST_Z; + centerX= 0; centerY= 0; centerZ= 0; + upX= 0; upY= 0; upZ= 1; + break; + case 27: exit(0); break; + default: break; + } + } + +int main(int argc, char* argv[]) { + init(); + + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); + glutInitWindowPosition(150, 50); + glutInitWindowSize(WIDTH, HEIGHT); + glutCreateWindow("solar2"); + glutDisplayFunc(&OnDraw); + glutIdleFunc(&OnUpdate); + glutKeyboardFunc(keyboard); + glutMainLoop(); + + return 0; + +} diff --git "a/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212-\345\276\220\350\276\211\357\274\215nb15156.pptx" "b/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212-\345\276\220\350\276\211\357\274\215nb15156.pptx" new file mode 100644 index 0000000..29c6a5a Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212-\345\276\220\350\276\211\357\274\215nb15156.pptx" differ diff --git "a/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212\357\274\215\345\276\220\350\276\211-nb15156.docx" "b/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212\357\274\215\345\276\220\350\276\211-nb15156.docx" new file mode 100644 index 0000000..4a88189 Binary files /dev/null and "b/Nb15156\345\276\220\350\276\211/\350\257\273\344\271\246\346\212\245\345\221\212/\350\257\273\344\271\246\346\212\245\345\221\212\357\274\215\345\276\220\350\276\211-nb15156.docx" differ