sgl 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. data/ChangeLog +234 -0
  2. data/Manifest.txt +94 -0
  3. data/Rakefile +16 -5
  4. data/examples/cocoa1-basic.rb +14 -0
  5. data/examples/cocoa10-transparent.rb +26 -0
  6. data/examples/cocoa11-application.rb +13 -0
  7. data/examples/cocoa2-draw.rb +23 -0
  8. data/examples/cocoa3-affine.rb +29 -0
  9. data/examples/cocoa4-font.rb +24 -0
  10. data/examples/cocoa5-image.rb +22 -0
  11. data/examples/cocoa6-sound.rb +24 -0
  12. data/examples/cocoa7-movie.rb +40 -0
  13. data/examples/cocoa8-movieoverlay.rb +42 -0
  14. data/examples/cocoa9-streaming.rb +40 -0
  15. data/examples/opengl1-basic.rb +14 -0
  16. data/examples/opengl11-application.rb +13 -0
  17. data/examples/opengl2-draw.rb +23 -0
  18. data/examples/opengl3-affine.rb +29 -0
  19. data/examples/sample1.rb +11 -0
  20. data/examples/sample10.rb +16 -0
  21. data/examples/sample11.rb +22 -0
  22. data/examples/sample11a.rb +33 -0
  23. data/examples/sample12.rb +30 -0
  24. data/examples/sample12a.rb +35 -0
  25. data/examples/sample13.rb +116 -0
  26. data/examples/sample15.rb +24 -0
  27. data/examples/sample16.rb +31 -0
  28. data/examples/sample16a.rb +35 -0
  29. data/examples/sample6.rb +18 -0
  30. data/examples/sample7.rb +16 -0
  31. data/examples/sample9.rb +20 -0
  32. data/examples/sgl-sound1.rb +6 -0
  33. data/examples/sgl-sound2.rb +19 -0
  34. data/examples/sine.ogg +0 -0
  35. data/examples/testgl.rb +169 -0
  36. data/lib/sgl/bass-api.rb +202 -0
  37. data/lib/sgl/bass-sample.rb +106 -0
  38. data/lib/sgl/bass.rb +46 -0
  39. data/lib/sgl/cocoa-app.rb +43 -0
  40. data/lib/sgl/cocoa-color.rb +65 -0
  41. data/lib/sgl/cocoa-draw.rb +72 -0
  42. data/lib/sgl/cocoa-event.rb +229 -0
  43. data/lib/sgl/cocoa-media.rb +144 -0
  44. data/lib/sgl/cocoa-notuse.rb +493 -0
  45. data/lib/sgl/cocoa-window.rb +203 -0
  46. data/lib/sgl/cocoa.rb +8 -0
  47. data/lib/sgl/notuse-objs.rb +358 -0
  48. data/lib/sgl/opengl-app.rb +38 -0
  49. data/lib/sgl/opengl-color.rb +44 -0
  50. data/lib/sgl/opengl-draw.rb +260 -0
  51. data/lib/sgl/opengl-event.rb +325 -0
  52. data/lib/sgl/opengl-modules.rb +22 -0
  53. data/lib/sgl/opengl-window.rb +224 -0
  54. data/lib/sgl/opengl.rb +7 -0
  55. data/lib/sgl/sgl-basic.rb +61 -0
  56. data/lib/sgl/sgl-button.rb +135 -0
  57. data/lib/sgl/sgl-client.rb +21 -0
  58. data/lib/sgl/sgl-color.rb +82 -0
  59. data/lib/sgl/sgl-connect.rb +9 -0
  60. data/lib/sgl/sgl-objlib.rb +0 -0
  61. data/lib/sgl/sgl-objs.rb +0 -0
  62. data/lib/sgl/sgl-server.rb +58 -0
  63. data/lib/sgl/sgl-sound.rb +24 -0
  64. data/lib/sgl/sgl-spring.rb +216 -0
  65. data/lib/sgl/sgl-timer.rb +72 -0
  66. data/lib/sgl/sgl.rb +5 -0
  67. data/lib/sgl/version.rb +2 -2
  68. data/scripts/makemanifest.rb +20 -0
  69. data/test/test_bass.rb +27 -0
  70. data/test/test_cocoa_app.rb +5 -5
  71. data/test/test_helper.rb +9 -1
  72. data/test/test_module_ruby16.rb +22 -21
  73. data/test/test_opengl_app.rb +4 -5
  74. data/test/test_opengl_basic.rb +3 -4
  75. data/test/test_opengl_fullscreen.rb +4 -6
  76. data/test/test_opengl_novice.rb +3 -6
  77. data/test/test_sgl.rb +4 -27
  78. data/test/test_sound.rb +15 -0
  79. data/website/challenge1.html +91 -0
  80. data/website/challenge1.txt +30 -0
  81. data/website/challenge2.html +144 -0
  82. data/website/challenge2.txt +73 -0
  83. data/website/challenge3.html +63 -0
  84. data/website/challenge3.txt +15 -0
  85. data/website/cocoa.html +88 -0
  86. data/website/cocoa.txt +35 -0
  87. data/website/description.html +138 -0
  88. data/website/description.txt +90 -0
  89. data/website/exercise1.html +264 -0
  90. data/website/exercise1.txt +192 -0
  91. data/website/exercise2.html +683 -0
  92. data/website/exercise2.txt +597 -0
  93. data/website/exhibition.html +84 -0
  94. data/website/exhibition.txt +24 -0
  95. data/website/howto.html +134 -0
  96. data/website/howto.txt +56 -0
  97. data/website/index.html +17 -9
  98. data/website/index.txt +13 -4
  99. data/website/sound.html +141 -0
  100. data/website/sound.txt +87 -0
  101. data/website/stylesheets/grade.png +0 -0
  102. data/website/stylesheets/screen.css +21 -20
  103. metadata +109 -3
@@ -0,0 +1,192 @@
1
+ h1. 練習問題 1〜10
2
+
3
+ h2. 課題1 基本 (window, background, color, line)
4
+
5
+ h3. 課題1A 一本の線を描くプログラムを作る
6
+
7
+ h3. 課題1B ある考えの元に3本の線を描くプログラムを作る
8
+
9
+ h3. 課題1C 5本以下の直線で「変化」を表現するプログラムを作る
10
+
11
+ h3. 課題1D 10本以下の直線で「ハーモニー(調和)」を表現するプログラムを作る
12
+
13
+ <pre syntax="ruby">
14
+ require 'sgl' # プログラムの最初に必ず書く必要がある
15
+ window 100, 100 # windowを開く
16
+ background 0 # 背景を黒にする
17
+ color 100 # 描画する色を白にする
18
+ line 0, 0, 100, 100 # 左下から右上に線を描く
19
+ wait # そのまま待つ
20
+ </pre>
21
+
22
+ h3. 半透明色の使い方
23
+
24
+ <pre syntax="ruby">
25
+ require 'sgl'
26
+ window 100,100
27
+ color 100, 0, 0 # 赤
28
+ rect 10,10,70,70 # 四角
29
+ color 0,0,100,50 # 半透明の青
30
+ rect 30,30,90,90 # 四角を重ねてかく
31
+ wait
32
+ </pre>
33
+
34
+ h2. 課題2A
35
+
36
+ 一つの変数を使って2本の直線の構成をコントロールするプログラムを作る.
37
+ <pre syntax="ruby">
38
+ require 'sgl'
39
+ window 100, 100
40
+ a = 50
41
+ line 0, 0, 50, a
42
+ line 100, 0, 50, a
43
+ wait
44
+ </pre>
45
+
46
+ h2. 課題3A 繰り返し (for a in 0..100; end)
47
+
48
+ 繰り返しを使った形態を描く.
49
+ <pre syntax="ruby">
50
+ require 'sgl'
51
+ window 100, 100
52
+ for a in 20..80
53
+ color a
54
+ line a, 0, a, 100
55
+ end
56
+ wait
57
+ </pre>
58
+
59
+ h2. 課題4A 計算 (+ - * /)
60
+
61
+ 計算を使った形態をかくプログラムを作る.
62
+ <pre syntax="ruby">
63
+ require 'sgl'
64
+ window 100, 100
65
+ for a in 20..40
66
+ color a
67
+ line(a, 0, a*2, 100)
68
+ end
69
+ wait
70
+ </pre>
71
+
72
+ h2. 課題6A kadai6a.rb
73
+
74
+ h3. 入れ子構造 6A 格子状にひろがる形態を作る.
75
+ <pre syntax="ruby">
76
+ # kadai6a.rb
77
+ require 'sgl'
78
+ window 200,200
79
+ for a in 0..10
80
+ for b in 0..10
81
+ color a*10, b*10, b*10
82
+ rect a*20+5, b*20+5, a*20+15, b*20+15
83
+ end
84
+ end
85
+ wait
86
+ </pre>
87
+
88
+ h2. 課題7A kadai7a.rb
89
+
90
+ h3. 質問 (if 50 &lt; a; end) 7A 画面の左右で違う形態を描く.
91
+ <pre syntax="ruby">
92
+ # kadai7a.rb
93
+ require 'sgl'
94
+ window 200,200
95
+ for a in 0..200
96
+ color a/2, 50, 50
97
+ if a < 100
98
+ line a, 50, a, 100
99
+ else
100
+ line a, 100, a, 150
101
+ end
102
+ end
103
+ wait
104
+ </pre>
105
+
106
+ h2. 課題8A
107
+
108
+ h3. defを使って自分なりのコマンドを作り,それを用いた形態を描く.
109
+
110
+ ファイル名 kadai8a.rb
111
+ <pre syntax="ruby">
112
+ require 'sgl'
113
+ window 100,100
114
+ background 100
115
+
116
+ def my_rect(x1, y1, x2, y2, outline, fill)
117
+ color fill
118
+ rect x1, y1, x2, y2
119
+ color outline
120
+ line x1, y1, x2, y1
121
+ line x2, y1, x2, y2
122
+ line x2, y2, x1, y2
123
+ line x1, y2, x1, y1
124
+ end
125
+
126
+ my_rect(20, 20, 40, 30, 20, 50)
127
+ my_rect(60, 60, 80, 90, 70, 90)
128
+ wait
129
+ </pre>
130
+
131
+ defというコマンドで関数を定義する.自分がよく使う形,例えば枠付きの塗
132
+ りつぶされた四角形を定義する.defの後に続くのが関数名である.アルファ
133
+ ベットの小文字から始まっている必要がある.
134
+
135
+ h2. 課題9A
136
+
137
+ h3. flipを使ってアニメーションを作る.
138
+
139
+ ファイル名 kadai9a.rb
140
+ <pre syntax="ruby">
141
+ require 'sgl'
142
+ window 100,100
143
+ loop do
144
+ for a in 0..100
145
+ line 20,a,80,a
146
+ flip
147
+ end
148
+ end
149
+ wait
150
+ </pre>
151
+
152
+ flipというところで、ちょうど紙をめくるように次の画面を表示させている。
153
+ @loop do 〜〜〜 end@ で,その間を無限に繰り返す.
154
+
155
+ h2. 課題10A
156
+
157
+ h3. HSVによる色指定を使って,自分なりの色グラデーションを作る。
158
+
159
+ 静止画でもアニメーションでもよい.(colorHSV, backgroundHSV)
160
+
161
+ ファイル名 kadai10a.rb
162
+ <pre syntax="ruby">
163
+ require 'sgl'
164
+ window 100,100
165
+ background 100
166
+
167
+ loop do
168
+ for h in 0..100
169
+ colorHSV h, 50, 100
170
+ rect 0, h, 100, h+5
171
+ flip
172
+ end
173
+ end
174
+ wait
175
+ </pre>
176
+
177
+ * colorHSV(h, s, v) → hue, saturation, value
178
+ * hue → 色調
179
+ * saturation → どれだけ原色に近いか
180
+ * value → 明るさ
181
+
182
+ * 4番目のパラメーターを使って,透明度を設定することもできる.
183
+ * backgroundHSVというコマンドもある.
184
+
185
+ h2. 課題の注意点
186
+
187
+ 課題はいずれもwindowサイズなどは自由.課題例は100,100のサイズになって
188
+ いるが,より大きいwindowサイズを選択してもよい。
189
+
190
+ ファイル名は必ず指定のものにし,Z:に保存する.指定のファイル名のファイ
191
+ ルが保存されているかどうかで課題提出を判定する.ファイル名が違う場合は
192
+ 提出してないことになってしまうので,注意する.