sgl 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/ChangeLog +254 -234
  2. data/History.txt +6 -0
  3. data/Manifest.txt +10 -0
  4. data/Rakefile +27 -7
  5. data/examples/cocoa1-basic.rb +14 -14
  6. data/examples/cocoa10-transparent.rb +26 -26
  7. data/examples/cocoa11-application.rb +13 -13
  8. data/examples/cocoa2-draw.rb +23 -23
  9. data/examples/cocoa3-affine.rb +29 -29
  10. data/examples/cocoa4-font.rb +24 -24
  11. data/examples/cocoa5-image.rb +22 -22
  12. data/examples/cocoa6-sound.rb +24 -24
  13. data/examples/cocoa7-movie.rb +40 -40
  14. data/examples/cocoa8-movieoverlay.rb +42 -42
  15. data/examples/cocoa9-streaming.rb +40 -40
  16. data/examples/opengl1-basic.rb +14 -14
  17. data/examples/opengl11-application.rb +13 -13
  18. data/examples/opengl2-draw.rb +23 -23
  19. data/examples/opengl3-affine.rb +29 -29
  20. data/examples/sample1.rb +11 -11
  21. data/examples/sample10.rb +16 -16
  22. data/examples/sample11.rb +22 -22
  23. data/examples/sample11a.rb +33 -33
  24. data/examples/sample12.rb +30 -30
  25. data/examples/sample12a.rb +35 -35
  26. data/examples/sample13.rb +116 -116
  27. data/examples/sample15.rb +24 -24
  28. data/examples/sample16.rb +31 -31
  29. data/examples/sample16a.rb +35 -35
  30. data/examples/sample6.rb +18 -18
  31. data/examples/sample7.rb +16 -16
  32. data/examples/sample9.rb +20 -20
  33. data/examples/testgl.rb +169 -169
  34. data/lib/sgl/bass.rb +46 -46
  35. data/lib/sgl/cocoa-app.rb +43 -43
  36. data/lib/sgl/cocoa-color.rb +65 -65
  37. data/lib/sgl/cocoa-draw.rb +72 -72
  38. data/lib/sgl/cocoa-event.rb +229 -229
  39. data/lib/sgl/cocoa-media.rb +144 -144
  40. data/lib/sgl/cocoa-notuse.rb +493 -493
  41. data/lib/sgl/cocoa-window.rb +203 -203
  42. data/lib/sgl/cocoa.rb +8 -8
  43. data/lib/sgl/opengl-app.rb +38 -38
  44. data/lib/sgl/opengl-color.rb +44 -44
  45. data/lib/sgl/opengl-draw.rb +260 -260
  46. data/lib/sgl/opengl-event.rb +325 -325
  47. data/lib/sgl/opengl-modules.rb +22 -22
  48. data/lib/sgl/opengl-window.rb +224 -224
  49. data/lib/sgl/opengl.rb +7 -7
  50. data/lib/sgl/sgl-button.rb +135 -135
  51. data/lib/sgl/sgl-client.rb +21 -21
  52. data/lib/sgl/sgl-color.rb +68 -82
  53. data/lib/sgl/sgl-connect.rb +9 -9
  54. data/lib/sgl/sgl-server.rb +58 -58
  55. data/lib/sgl/sgl-spring.rb +216 -216
  56. data/lib/sgl/version.rb +2 -2
  57. data/scripts/lib-txt2html.rb +130 -0
  58. data/scripts/txt2html +2 -63
  59. data/spec/sgl_spec.rb +13 -0
  60. data/spec/spec.opts +1 -0
  61. data/spec/spec_helper.rb +1 -0
  62. data/test/test_cocoa_app.rb +291 -291
  63. data/test/test_module_ruby16.rb +30 -30
  64. data/test/test_opengl_app.rb +147 -147
  65. data/test/test_opengl_basic.rb +22 -22
  66. data/test/test_opengl_fullscreen.rb +23 -23
  67. data/test/test_opengl_novice.rb +35 -35
  68. data/website/challenge1.html +91 -91
  69. data/website/challenge1.txt +3 -3
  70. data/website/challenge2.html +143 -144
  71. data/website/challenge2.txt +13 -14
  72. data/website/challenge3.html +66 -63
  73. data/website/challenge3.txt +7 -7
  74. data/website/cocoa.html +85 -88
  75. data/website/cocoa.txt +2 -4
  76. data/website/description.html +138 -138
  77. data/website/description.txt +1 -1
  78. data/website/exercise1.html +262 -264
  79. data/website/exercise1.txt +58 -53
  80. data/website/exercise2.html +241 -683
  81. data/website/exercise2.txt +11 -427
  82. data/website/exercise3.html +206 -0
  83. data/website/exercise3.txt +155 -0
  84. data/website/exercise4.html +198 -0
  85. data/website/exercise4.txt +151 -0
  86. data/website/exercise5.html +162 -0
  87. data/website/exercise5.txt +113 -0
  88. data/website/exhibition.html +84 -84
  89. data/website/howto.html +146 -134
  90. data/website/howto.txt +9 -0
  91. data/website/index.html +178 -178
  92. data/website/index.txt +20 -19
  93. data/website/sound.html +141 -141
  94. metadata +16 -3
@@ -83,7 +83,7 @@ end
83
83
 
84
84
  同様に,onNoteOff(ch, note)もある.
85
85
 
86
- # ソフトサンプラー機能
86
+ # サウンド再生機能
87
87
  useSound
88
88
  sound = loadSound('sine.wav')
89
89
  sound.play(60, 100, -100) # note, vel, pan
@@ -1,264 +1,262 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
- <title>
8
- 練習問題 1〜10
9
- </title>
10
- <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
- <style>
12
-
13
- </style>
14
- <script type="text/javascript">
15
- window.onload = function() {
16
- settings = {
17
- tl: { radius: 10 },
18
- tr: { radius: 10 },
19
- bl: { radius: 10 },
20
- br: { radius: 10 },
21
- antiAlias: true,
22
- autoPad: true,
23
- validTags: ["div"]
24
- }
25
- var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
- versionBox.applyCornersToAll();
27
- }
28
- </script>
29
- </head>
30
- <body>
31
- <div id="main">
32
-
33
- <h1>練習問題 1〜10</h1>
34
- <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
35
- <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/sgl" class="numbers">0.4.0</a>
37
- </div>
38
- <h2>課題1 基本 (window, background, color, line)</h2>
39
-
40
-
41
- <h3>課題1A 一本の線を描くプログラムを作る</h3>
42
-
43
-
44
- <h3>課題1B ある考えの元に3本の線を描くプログラムを作る</h3>
45
-
46
-
47
- <h3>課題1C 5本以下の直線で「変化」を表現するプログラムを作る</h3>
48
-
49
-
50
- <h3>課題1D 10本以下の直線で「ハーモニー(調和)」を表現するプログラムを作る</h3>
51
-
52
-
53
- <pre syntax="ruby">
54
- require 'sgl' # プログラムの最初に必ず書く必要がある
55
- window 100, 100 # windowを開く
56
- background 0 # 背景を黒にする
57
- color 100 # 描画する色を白にする
58
- line 0, 0, 100, 100 # 左下から右上に線を描く
59
- wait # そのまま待つ
60
- </pre>
61
-
62
- <h3>半透明色の使い方</h3>
63
-
64
-
65
- <pre syntax="ruby">
66
- require 'sgl'
67
- window 100,100
68
- color 100, 0, 0 # 赤
69
- rect 10,10,70,70 # 四角
70
- color 0,0,100,50 # 半透明の青
71
- rect 30,30,90,90 # 四角を重ねてかく
72
- wait
73
- </pre>
74
-
75
- <h2>課題2A</h2>
76
-
77
-
78
- 一つの変数を使って2本の直線の構成をコントロールするプログラムを作る.
79
- <pre syntax="ruby">
80
- require 'sgl'
81
- window 100, 100
82
- a = 50
83
- line 0, 0, 50, a
84
- line 100, 0, 50, a
85
- wait
86
- </pre>
87
-
88
- <h2>課題3A 繰り返し (for a in 0..100; end)</h2>
89
-
90
-
91
- 繰り返しを使った形態を描く.
92
- <pre syntax="ruby">
93
- require 'sgl'
94
- window 100, 100
95
- for a in 20..80
96
- color a
97
- line a, 0, a, 100
98
- end
99
- wait
100
- </pre>
101
-
102
- <h2>課題4A 計算 (+ &#8211; * /)</h2>
103
-
104
-
105
- 計算を使った形態をかくプログラムを作る.
106
- <pre syntax="ruby">
107
- require 'sgl'
108
- window 100, 100
109
- for a in 20..40
110
- color a
111
- line(a, 0, a*2, 100)
112
- end
113
- wait
114
- </pre>
115
-
116
- <h2>課題6A kadai6a.rb</h2>
117
-
118
-
119
- h3. 入れ子構造 6A 格子状にひろがる形態を作る.
120
- <pre syntax="ruby">
121
- # kadai6a.rb
122
- require 'sgl'
123
- window 200,200
124
- for a in 0..10
125
- for b in 0..10
126
- color a*10, b*10, b*10
127
- rect a*20+5, b*20+5, a*20+15, b*20+15
128
- end
129
- end
130
- wait
131
- </pre>
132
-
133
- <h2>課題7A kadai7a.rb</h2>
134
-
135
-
136
- h3. 質問 (if 50 &lt; a; end) 7A 画面の左右で違う形態を描く.
137
- <pre syntax="ruby">
138
- # kadai7a.rb
139
- require 'sgl'
140
- window 200,200
141
- for a in 0..200
142
- color a/2, 50, 50
143
- if a &lt; 100
144
- line a, 50, a, 100
145
- else
146
- line a, 100, a, 150
147
- end
148
- end
149
- wait
150
- </pre>
151
-
152
- <h2>課題8A</h2>
153
-
154
-
155
- <h3>defを使って自分なりのコマンドを作り,それを用いた形態を描く.</h3>
156
-
157
-
158
- ファイル名 kadai8a.rb
159
- <pre syntax="ruby">
160
- require 'sgl'
161
- window 100,100
162
- background 100
163
-
164
- def my_rect(x1, y1, x2, y2, outline, fill)
165
- color fill
166
- rect x1, y1, x2, y2
167
- color outline
168
- line x1, y1, x2, y1
169
- line x2, y1, x2, y2
170
- line x2, y2, x1, y2
171
- line x1, y2, x1, y1
172
- end
173
-
174
- my_rect(20, 20, 40, 30, 20, 50)
175
- my_rect(60, 60, 80, 90, 70, 90)
176
- wait
177
- </pre>
178
-
179
- <p>defというコマンドで関数を定義する.自分がよく使う形,例えば枠付きの塗
180
- りつぶされた四角形を定義する.defの後に続くのが関数名である.アルファ
181
- ベットの小文字から始まっている必要がある.</p>
182
-
183
-
184
- <h2>課題9A</h2>
185
-
186
-
187
- <h3>flipを使ってアニメーションを作る.</h3>
188
-
189
-
190
- ファイル名 kadai9a.rb
191
- <pre syntax="ruby">
192
- require 'sgl'
193
- window 100,100
194
- loop do
195
- for a in 0..100
196
- line 20,a,80,a
197
- flip
198
- end
199
- end
200
- wait
201
- </pre>
202
-
203
- <p>flipというところで、ちょうど紙をめくるように次の画面を表示させている。
204
- <code>loop do 〜〜〜 end</code> で,その間を無限に繰り返す.</p>
205
-
206
-
207
- <h2>課題10A</h2>
208
-
209
-
210
- <h3><span class="caps">HSV</span>による色指定を使って,自分なりの色グラデーションを作る。</h3>
211
-
212
-
213
- <p>静止画でもアニメーションでもよい.(colorHSV, backgroundHSV)</p>
214
-
215
-
216
- ファイル名 kadai10a.rb
217
- <pre syntax="ruby">
218
- require 'sgl'
219
- window 100,100
220
- background 100
221
-
222
- loop do
223
- for h in 0..100
224
- colorHSV h, 50, 100
225
- rect 0, h, 100, h+5
226
- flip
227
- end
228
- end
229
- wait
230
- </pre>
231
-
232
- <ul>
233
- <li>colorHSV(h, s, v) → hue, saturation, value</li>
234
- <li>hue 色調</li>
235
- <li>saturation どれだけ原色に近いか</li>
236
- <li>value → 明るさ</li>
237
- </ul>
238
-
239
-
240
- <ul>
241
- <li>4番目のパラメーターを使って,透明度を設定することもできる.</li>
242
- <li>backgroundHSVというコマンドもある.</li>
243
- </ul>
244
-
245
-
246
- <h2>課題の注意点</h2>
247
-
248
-
249
- <p>課題はいずれもwindowサイズなどは自由.課題例は100,100のサイズになって
250
- いるが,より大きいwindowサイズを選択してもよい。</p>
251
-
252
-
253
- <p>ファイル名は必ず指定のものにし,Z:に保存する.指定のファイル名のファイ
254
- ルが保存されているかどうかで課題提出を判定する.ファイル名が違う場合は
255
- 提出してないことになってしまうので,注意する.</p>
256
- <p class="coda">
257
- 19th June 2007<br>
258
- </p>
259
- </div>
260
-
261
- <!-- insert site tracking codes here, like Google Urchin -->
262
-
263
- </body>
264
- </html>
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
+ <title>
8
+ 練習問題1
9
+ </title>
10
+ <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
+ <style>
12
+
13
+ </style>
14
+ <script type="text/javascript">
15
+ window.onload = function() {
16
+ settings = {
17
+ tl: { radius: 10 },
18
+ tr: { radius: 10 },
19
+ bl: { radius: 10 },
20
+ br: { radius: 10 },
21
+ antiAlias: true,
22
+ autoPad: true,
23
+ validTags: ["div"]
24
+ }
25
+ var versionBox = new curvyCorners(settings, document.getElementById("version"));
26
+ versionBox.applyCornersToAll();
27
+ }
28
+ </script>
29
+ </head>
30
+ <body>
31
+ <div id="main">
32
+
33
+ <h1>練習問題1</h1>
34
+ <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/sgl"; return false'>
35
+ <p>Get Version</p>
36
+ <a href="http://rubyforge.org/projects/sgl" class="numbers">1.0.0</a>
37
+ </div>
38
+ <h2>課題1: 一本の線を描く</h2>
39
+
40
+
41
+ <pre syntax="ruby">
42
+ # kadai1.rb
43
+ require 'sgl' # プログラムの最初に必ず書く必要がある
44
+ window 100, 100 # windowを開く
45
+ background 0 # 背景を黒にする
46
+ color 100 # 描画する色を白にする
47
+ line 0, 0, 100, 100 # 左下から右上に線を描く
48
+ wait # そのまま待つ
49
+ </pre>
50
+
51
+ <h2>課題2: ある考えの元に3本の線を描く</h2>
52
+
53
+
54
+ <pre syntax="ruby">
55
+ # kadai2.rb
56
+ require 'sgl'
57
+ window 100, 100
58
+ background 0
59
+ color 100
60
+ line 0, 0, 100, 100
61
+ line 0, 0, 100, 50
62
+ line 0, 0, 100, 25
63
+ wait
64
+ </pre>
65
+
66
+ <h2>課題3: 5本以下の直線で「変化」を表現する</h2>
67
+
68
+
69
+ <pre syntax="ruby">
70
+ # kadai3.rb
71
+ # 考えてみましょう.
72
+ </pre>
73
+
74
+ <h2>課題4: 10本以下の直線で「ハーモニー(調和)」を表現する</h2>
75
+
76
+
77
+ <pre syntax="ruby">
78
+ # kadai4.rb
79
+ # 考えてみましょう.
80
+ </pre>
81
+
82
+ <h2>課題5: 一つの変数を使って2本の直線の構成をコントロールする</h2>
83
+
84
+
85
+ <pre syntax="ruby">
86
+ # kadai5.rb
87
+ require 'sgl'
88
+ window 100, 100
89
+ a = 50
90
+ line 0, 0, 50, a
91
+ line 100, 0, 50, a
92
+ wait
93
+ </pre>
94
+
95
+ <h2>課題6: 繰り返しを使った形態を描く</h2>
96
+
97
+
98
+ <pre syntax="ruby">
99
+ # kadai6.rb
100
+ require 'sgl'
101
+ window 100, 100
102
+ for a in 20..80
103
+ color a
104
+ line a, 0, a, 100
105
+ end
106
+ wait
107
+ </pre>
108
+
109
+ <h2>課題7: 計算を使った形態を描く</h2>
110
+
111
+
112
+ <pre syntax="ruby">
113
+ # kadai7.rb
114
+ require 'sgl'
115
+ window 100, 100
116
+ for a in 20..40
117
+ color a
118
+ line(a, 0, a*2, 100)
119
+ end
120
+ wait
121
+ </pre>
122
+
123
+ <h2>課題8: 半透明を使った形態を描く</h2>
124
+
125
+
126
+ <pre syntax="ruby">
127
+ # kadai8.rb
128
+ require 'sgl'
129
+ window 100,100
130
+ color 100, 0, 0 # 赤
131
+ rect 10,10,70,70 # 四角
132
+ color 0,0,100,50 # 半透明の青
133
+ rect 30,30,90,90 # 四角を重ねてかく
134
+ wait
135
+ </pre>
136
+
137
+ <h2>課題9: 入れ子構造,格子状にひろがる形態を作る</h2>
138
+
139
+
140
+ <pre syntax="ruby">
141
+ # kadai9.rb
142
+ require 'sgl'
143
+ window 200,200
144
+ for a in 0..10
145
+ for b in 0..10
146
+ color a*10, b*10, b*10
147
+ rect a*20+5, b*20+5, a*20+15, b*20+15
148
+ end
149
+ end
150
+ wait
151
+ </pre>
152
+
153
+ <h2>課題10: 条件分岐,画面の左右で違う形態を描く</h2>
154
+
155
+
156
+ <pre syntax="ruby">
157
+ # kadai10.rb
158
+ require 'sgl'
159
+ window 200,200
160
+ for a in 0..200
161
+ color a/2, 50, 50
162
+ if a &lt; 100
163
+ line a, 50, a, 100
164
+ else
165
+ line a, 100, a, 150
166
+ end
167
+ end
168
+ wait
169
+ </pre>
170
+
171
+ <h2>課題11: 自分なりの命令を作り,それを用いた形態を描く</h2>
172
+
173
+
174
+ <pre syntax="ruby">
175
+ # kadai11.rb
176
+ require 'sgl'
177
+ window 100,100
178
+ background 100
179
+
180
+ def my_rect(x1, y1, x2, y2, outline, fill)
181
+ color fill
182
+ rect x1, y1, x2, y2
183
+ color outline
184
+ line x1, y1, x2, y1
185
+ line x2, y1, x2, y2
186
+ line x2, y2, x1, y2
187
+ line x1, y2, x1, y1
188
+ end
189
+
190
+ my_rect(20, 20, 40, 30, 20, 50)
191
+ my_rect(60, 60, 80, 90, 70, 90)
192
+ wait
193
+ </pre>
194
+
195
+ <p>defというコマンドで命令を定義する.ここでは,枠付きの塗りつぶされた四
196
+ 角形を定義している.defの後に続くのが命令の名前となる.アルファベット
197
+ の小文字から始まっている必要がある.</p>
198
+
199
+
200
+ <h2>課題12: flipを使ってアニメーションを作る</h2>
201
+
202
+
203
+ <pre syntax="ruby">
204
+ # kadai12.rb
205
+ require 'sgl'
206
+ window 100,100
207
+ loop do
208
+ for a in 0..100
209
+ line 20,a,80,a
210
+ flip
211
+ end
212
+ end
213
+ wait
214
+ </pre>
215
+
216
+ <p>flipというところで,ちょうど紙をめくるように次の画面を表示させている.
217
+ <code>loop do 〜〜〜 end</code> で,その間を無限に繰り返す.</p>
218
+
219
+
220
+ <h2>課題13: <span class="caps">HSV</span>による色指定を使り,自分なりの色グラデーションを作る</h2>
221
+
222
+
223
+ <p>静止画でもアニメーションでもよい.(colorHSV, backgroundHSV)</p>
224
+
225
+
226
+ <pre syntax="ruby">
227
+ # kadai13.rb
228
+ require 'sgl'
229
+ window 100,100
230
+ background 100
231
+
232
+ loop do
233
+ for h in 0..100
234
+ colorHSV h, 50, 100
235
+ rect 0, h, 100, h+5
236
+ flip
237
+ end
238
+ end
239
+ wait
240
+ </pre>
241
+
242
+ <ul>
243
+ <li>colorHSV(h, s, v) → hue, saturation, value</li>
244
+ <li>hue → 色調</li>
245
+ <li>saturation → どれだけ原色に近いか</li>
246
+ <li>value → 明るさ</li>
247
+ </ul>
248
+
249
+
250
+ <ul>
251
+ <li>4番目のパラメーターを使って,透明度を設定することもできる.</li>
252
+ <li>backgroundHSVというコマンドもある.</li>
253
+ </ul>
254
+ <p class="coda">
255
+ 30th June 2007<br>
256
+ </p>
257
+ </div>
258
+
259
+ <!-- insert site tracking codes here, like Google Urchin -->
260
+
261
+ </body>
262
+ </html>