|
Generated by diff2html.pl © Yves Bailly, MandrakeSoft S.A. 2001, Ryohei Morita 2007 diff2html.pl is licensed under the GNU GPL. |
../09-03/09-03-Rendering.c | 11-04-Rendering.c | |||
---|---|---|---|---|
47 lines 1485 bytes Last modified : Mon Nov 19 06:51:42 2012 |
49 lines 1574 bytes Last modified : Mon Nov 19 18:44:45 2012 |
|||
1 | // Keisanki Joron 2 (Introduction to Computing II) | 1 | // Keisanki Joron 2 (Introduction to Computing II) | |
2 | // Dept. of Engineering Systems, University of Tsukuba | 2 | // Dept. of Engineering Systems, University of Tsukuba | |
3 | // [UTF-8 / Unix] | 3 | // [UTF-8 / Unix] | |
4 | // 計算機序論2・実習 (筑波大学工学システム学類) | 4 | // 計算機序論2・実習 (筑波大学工学システム学類) | |
5 | 5 | |||
6 | // 2012/11/19a kameda[at]iit.tsukuba.ac.jp | 6 | // 2012/11/19b kameda[at]iit.tsukuba.ac.jp | |
7 | // 09.03. 透視投影下での回転と移動 | 7 | // 11.04. ポリゴン表示 | |
8 | 8 | |||
9 | #include "ic2-CommonHeaders.h" | 9 | #include "ic2-CommonHeaders.h" | |
10 | 10 | |||
11 | 11 | |||
12 | // *********************************************************************** | 12 | // *********************************************************************** | |
13 | // Rendering ************************************************************* | 13 | // Rendering ************************************************************* | |
14 | 14 | |||
15 | // +++-------------------------------------------------- | 15 | // +++-------------------------------------------------- | |
16 | // スクリーンに描画する | 16 | // スクリーンに描画する | |
17 | // +++-------------------------------------------------- | 17 | // +++-------------------------------------------------- | |
18 | 18 | |||
19 | // +---------------------------------------------------- | 19 | // +---------------------------------------------------- | |
20 | // 1フレーム分の描画 | 20 | // 1フレーム分の描画 | |
21 | // +---------------------------------------------------- | 21 | // +---------------------------------------------------- | |
22 | void ic2_DrawFrame (void) { | 22 | void ic2_DrawFrame (void) { | |
23 | // (1) 描画バッファの初期化 | 23 | // (1) 描画バッファの初期化 | |
24 | // 以前にglClearColor()で指定した色で塗り潰す | 24 | // 以前にglClearColor()で指定した色で塗り潰す | |
25 | glClear(GL_COLOR_BUFFER_BIT); | 25 | glClear(GL_COLOR_BUFFER_BIT); | |
26 | 26 | |||
27 | // (2) カメラの設定 | 27 | // (2) カメラの設定 | |
28 | ic2_SetUpCamera_Perspective(); // 透視投影 | 28 | ic2_SetUpCamera_Perspective(); // 透視投影 | |
29 | 29 | |||
30 | // (3) 光源の設置 | 30 | // (3) 光源の設置 | |
31 | 31 | |||
32 | // (4) 物体の描画 | 32 | // (4) 物体の描画 | |
33 | glMatrixMode(GL_MODELVIEW); | 33 | glMatrixMode(GL_MODELVIEW); | |
34 | { | 34 | { | |
35 | static float roty = 0.0; // Y軸回りの回転 [degree] | 35 | static float roty = 0.0; // Y軸回りの回転 [degree] | |
36 | static float rotx = 0.0; | |||
36 | glLoadIdentity(); | 37 | glLoadIdentity(); | |
37 | glTranslatef(0.0, 0.0, -3.0); // 透視投影の描画範囲と対応必要 | 38 | glTranslatef(0.0, 0.0, -3.0); // 透視投影の描画範囲と対応必要 | |
38 | glRotatef(roty, 0, 1, 0); // Y軸回りの回転 | 39 | glRotatef(roty-=1.0, 0, 1, 0); // Y軸回りの回転 | |
39 | ic2_OpenGLLogo(logoscale); | 40 | glRotatef(rotx+=2.0, 1, 0, 0); // X軸回りの回転 | |
40 | roty -= 1.0; // 1 [degree] ずつ | 41 | //ic2_OpenGLLogo(logoscale); | |
41 | if (roty <= -360.0) | 42 | ic2_DrawModel(); | |
42 | roty += 360.0; | 43 | if (roty <= -360.0) roty += 360.0; | |
44 | if (rotx >= +360.0) rotx -= 360.0; | |||
43 | } | 45 | } | |
44 | // (5) 描画バッファの切替 | 46 | // (5) 描画バッファの切替 | |
45 | glutSwapBuffers(); | 47 | glutSwapBuffers(); | |
46 | } | 48 | } | |
47 | 49 |