sgl 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
@@ -51,23 +51,22 @@ h2. 作品制作にかかわる注意
51
51
 
52
52
  必ず作品制作に取り組む前に絵コンテを描き,見せにくることが必要.まずど
53
53
  のような動きを作るかを考えてから,プログラミングを開始する.絵コンテを
54
- 見せにこないでプログラムだけ作っても,課題提出とは見なしません.
54
+ 見せずにプログラムだけ作成した場合は,課題提出とは見なさない.
55
55
 
56
- 必ず5つのプログラムを作る.1つのプログラムで5つのアニメーション,では
57
- だめです.
56
+ 必ず5つのプログラムを作る.1つのプログラムで5つのアニメーションにはし
57
+ ない.
58
58
 
59
- コマンドを定義する機能を最低5個は使うこと.5つのプログラムで5つのコマ
60
- ンドでよい.5つのプログラムで共通に使いまわせるようなコマンドを作れる
61
- とよい.ある一つのテーマを5つのプログラムで実現すると,同じ形が複数の
62
- プログラムにでてくることがある.そのとき,その形を書くコマンドを定義し
63
- て,それを使い回すことによってプログラムを簡略化できることがある.その
64
- ようにプログラムのテクニックとしてのコマンドの使い方を体験することも課
65
- 題の一つである.コマンド機能を使ってないプログラムの場合は課題提出とは
66
- 見なしません.
59
+ 命令を定義する機能を最低5個は使う.5つのプログラムで5つの命令でよい.5
60
+ つのプログラムで共通に使いまわせるような命令を作るようにする.一つのテー
61
+ マを5つのプログラムで実現すると,同じ形が複数のプログラムにでてくるこ
62
+ とがある.そのとき,その形を書く命令を定義して,それを使い回すことによっ
63
+ てプログラムを簡略化できる.そのようにプログラムのテクニックとしてのコ
64
+ マンドの使い方を体験することが課題の一つである.コマンド機能を使ってな
65
+ いプログラムの場合は課題提出とは見なさない.
67
66
 
68
- アニメーションの長さは指定しないが,短くコンパクトにまとめること.長く
69
- ても5つで3分以内におさめること.
67
+ アニメーションの長さは指定しない.短くコンパクトにまとめること.最長で
68
+ 5つで3分以内におさめること.
70
69
 
71
70
  h2. 採点
72
71
 
73
- テーマ選び,絵コンテも含め,内容を重視した採点をします.
72
+ テーマ選び,絵コンテも含め,内容を重視した採点をする.
@@ -1,63 +1,66 @@
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
- 最終課題
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>最終課題</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>レポート: プログラミングにふれてみての感想</h2>
39
-
40
-
41
- <p>課題: この授業では,プログラミングによってコンピュータ上に形を作るとい
42
- うことを学んだ.授業を受ける前と後とでは,プログラミングというものにつ
43
- いて,どのような考え方の変化があったか.受ける前はプログラミングについ
44
- てこう考えていた,受けた後ではプログラミングとはこのようなものだと思う
45
- ようになった,というこのような形式で,この授業で学んだことをレポートと
46
- して書く.</p>
47
-
48
-
49
- <ul>
50
- <li>字数: 600字以上〜1200字以内</li>
51
- <li>提出: メールで提出する.</li>
52
- <li>レポートの最初に必ず,タイトル,学籍番号,名前を書いてください.</li>
53
- <li>レポートはメールの本文に書く.(ワード・ドキュメントの添付は禁止.)</li>
54
- </ul>
55
- <p class="coda">
56
- 20th June 2007<br>
57
- </p>
58
- </div>
59
-
60
- <!-- insert site tracking codes here, like Google Urchin -->
61
-
62
- </body>
63
- </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
+ 最終課題
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>最終課題</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>レポート: プログラミングにふれてみての感想</h2>
39
+
40
+
41
+ <p>課題: この授業では,プログラミングによってコンピュータ上に形を作るとい
42
+ うことを学んだ.授業を受ける前と後とでは,プログラミングについて,どの
43
+ ような考え方の変化があったかをレポートとしてまとめ,提出する.</p>
44
+
45
+
46
+ <p>受ける前はプログラミングについてこう考えていた,受けた後ではプログラミ
47
+ ングとはこのようなものだと思うようになった,というこのような形式をとる.</p>
48
+
49
+
50
+ <ul>
51
+ <li>字数: 600字以上〜1200字以内</li>
52
+ <li>提出: メールで提出する.
53
+ <ul>
54
+ <li>レポートの最初に必ず,タイトル,学籍番号,名前を書く.</li>
55
+ <li>レポートはメールの本文に書く.ワードファイルは添付しない.</li>
56
+ </ul></li>
57
+ </ul>
58
+ <p class="coda">
59
+ 30th June 2007<br>
60
+ </p>
61
+ </div>
62
+
63
+ <!-- insert site tracking codes here, like Google Urchin -->
64
+
65
+ </body>
66
+ </html>
@@ -3,13 +3,13 @@ h1. 最終課題
3
3
  h2. レポート: プログラミングにふれてみての感想
4
4
 
5
5
  課題: この授業では,プログラミングによってコンピュータ上に形を作るとい
6
- うことを学んだ.授業を受ける前と後とでは,プログラミングというものにつ
7
- いて,どのような考え方の変化があったか.受ける前はプログラミングについ
8
- てこう考えていた,受けた後ではプログラミングとはこのようなものだと思う
9
- ようになった,というこのような形式で,この授業で学んだことをレポートと
10
- して書く.
6
+ うことを学んだ.授業を受ける前と後とでは,プログラミングについて,どの
7
+ ような考え方の変化があったかをレポートとしてまとめ,提出する.
8
+
9
+ 受ける前はプログラミングについてこう考えていた,受けた後ではプログラミ
10
+ ングとはこのようなものだと思うようになった,というこのような形式をとる.
11
11
 
12
12
  * 字数: 600字以上〜1200字以内
13
13
  * 提出: メールで提出する.
14
- * レポートの最初に必ず,タイトル,学籍番号,名前を書いてください.
15
- * レポートはメールの本文に書く.(ワード・ドキュメントの添付は禁止.)
14
+ ** レポートの最初に必ず,タイトル,学籍番号,名前を書く.
15
+ ** レポートはメールの本文に書く.ワードファイルは添付しない.
data/website/cocoa.html CHANGED
@@ -1,88 +1,85 @@
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
- sgl-cocoa &#x2192; sgl with Ruby/Cocoa
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>sgl-cocoa &#x2192; sgl with Ruby/Cocoa</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>What</h2>
39
-
40
-
41
- <p>&#8216;sgl-cocoa&#8217; is a cocoa version of sgl.
42
- You can use sgl functions with Ruby/Cocoa.</p>
43
-
44
-
45
- <h2>Requirement</h2>
46
-
47
-
48
- <p>You can use this only on Mac <span class="caps">OS X</span>.</p>
49
-
50
-
51
- <h3>Mac <span class="caps">OS X</span></h3>
52
-
53
-
54
- <ul>
55
- <li>Mac <span class="caps">OS X 10</span>.3 or later</li>
56
- <li>ruby 1.8.5 or later</li>
57
- <li>RubyCocoa 0.4.1 or later</li>
58
- </ul>
59
-
60
-
61
- <h2>The basics</h2>
62
-
63
-
64
- Save this progarm as <code>test1.rb</code>.
65
- <pre syntax="ruby">
66
- require "sgl/cocoa"
67
-
68
- def setup
69
- window 100, 100
70
- end
71
-
72
- def display
73
- line 0, 0, 100, 100
74
- end
75
-
76
- mainloop
77
- </pre>
78
-
79
- <p>Run the program with <code>ruby test1.rb</code>.</p>
80
- <p class="coda">
81
- 19th June 2007<br>
82
- </p>
83
- </div>
84
-
85
- <!-- insert site tracking codes here, like Google Urchin -->
86
-
87
- </body>
88
- </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
+ sgl-cocoa &#x2192; sgl with Ruby/Cocoa
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>sgl-cocoa &#x2192; sgl with Ruby/Cocoa</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>What</h2>
39
+
40
+
41
+ <p>&#8216;sgl-cocoa&#8217; is a cocoa version of sgl.
42
+ You can use sgl functions with Ruby/Cocoa.</p>
43
+
44
+
45
+ <h2>Requirement</h2>
46
+
47
+
48
+ <p>You can use sgl-cocoa only on Mac <span class="caps">OS X</span>.</p>
49
+
50
+
51
+ <ul>
52
+ <li>Mac <span class="caps">OS X 10</span>.3 or later</li>
53
+ <li>ruby 1.8.5 or later</li>
54
+ <li>RubyCocoa 0.4.1 or later</li>
55
+ </ul>
56
+
57
+
58
+ <h2>The basics</h2>
59
+
60
+
61
+ <pre syntax="ruby">
62
+ # test1.rb
63
+ require "sgl/cocoa"
64
+
65
+ def setup
66
+ window 100, 100
67
+ end
68
+
69
+ def display
70
+ line 0, 0, 100, 100
71
+ end
72
+
73
+ mainloop
74
+ </pre>
75
+
76
+ <p>Run the program with <code>ruby test1.rb</code>.</p>
77
+ <p class="coda">
78
+ 30th June 2007<br>
79
+ </p>
80
+ </div>
81
+
82
+ <!-- insert site tracking codes here, like Google Urchin -->
83
+
84
+ </body>
85
+ </html>
data/website/cocoa.txt CHANGED
@@ -7,9 +7,7 @@ You can use sgl functions with Ruby/Cocoa.
7
7
 
8
8
  h2. Requirement
9
9
 
10
- You can use this only on Mac OS X.
11
-
12
- h3. Mac OS X
10
+ You can use sgl-cocoa only on Mac OS X.
13
11
 
14
12
  * Mac OS X 10.3 or later
15
13
  * ruby 1.8.5 or later
@@ -17,8 +15,8 @@ h3. Mac OS X
17
15
 
18
16
  h2. The basics
19
17
 
20
- Save this progarm as @test1.rb@.
21
18
  <pre syntax="ruby">
19
+ # test1.rb
22
20
  require "sgl/cocoa"
23
21
 
24
22
  def setup
@@ -1,138 +1,138 @@
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
- sglの説明
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>sglの説明</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>What is sgl?</h2>
39
-
40
-
41
- <p>sglは,Rubyからグラフィックやサウンドを簡単に扱えるようにしたライブラ
42
- リである.できるだけ優しくプログラミングを初められるように,シンプルな
43
- 記述で必要最小限の動作するプログラムを作成できるようになっている.</p>
44
-
45
-
46
- <p><a href="http://dbn.media.mit.edu/"><span class="caps">DBN</span></a> というプログラミング環境が提供していた
47
- 理念を継承し,可能な限り簡単にプログラミングに取り組めるように工夫して
48
- いる.DBNの理念を継承した環境として,
49
- <a href="http://www.processing.org/">Processing</a> とは兄弟関係にあると言える.</p>
50
-
51
-
52
- <p>グラフィックスはOpenGL,Window表示,マウス入力,キー入力などにはSDLを
53
- 用いている.またMIDIの入出力なども組み合せて使えるようになっている.ラ
54
- イブラリーの構造はGLUTを参考にしている.</p>
55
-
56
-
57
- <pre syntax="ruby">
58
- # 基本的なプログラムの例
59
- reuire 'sgl' # 最初に必ず必要
60
- window 100,100 # 100x100のウィンドウを生成
61
- background 0 # 背景は黒にします
62
- color 100 # 白を指定します
63
- line 20,20,80,80 # 線を引きます
64
- rect 20,20,80,80 # 四角を描きます
65
- wait # プログラムが終了しないように待つ.ESCキーで終了する.
66
-
67
- # 色空間
68
- color 100,0,0 # 赤になる.r,g,bで色が使える
69
- color 100,0,0,50 # 半透明の赤.100が不透明(デフォルト).0が完全に透明.
70
- colorHSV 50,0,100 # hsv方式での色指定もできる.
71
- backgroundHSV 70,0,100 # 背景の指定もhsvでできる.
72
- colorHSV 50,0,100,50 # もちろんhsv方式でもアルファ値は指定できる.
73
-
74
- # 3Dも使える
75
- useFov(60) # field of view.画角を指定
76
- useDepth # depth bufferを使う
77
- line 20,20,20,80,80,80 # とりあえず線
78
- color 0,100,0,50 # とりあえず半透明
79
- box 20,20,20,80,80,80 # 箱.半透明になっている
80
- useSmooth # 線にanti aliasがかかる.
81
-
82
- # MIDI関係
83
- useMidi # midiを使うということ宣言
84
- note 1, 60, 90, 100 # ch, note, vel, msec.
85
-
86
- # 詳細な描画について
87
- beginObj(QUADS)
88
- vertex 20,20
89
- vertex 80,20
90
- vertex 80,80
91
- vertex 20,80
92
- endObj
93
- # 同様に,vertexにz軸の情報を加えれば,3Dとなる.
94
-
95
- オブジェクトの種類は,
96
- LINES POINTS LINE_STRIP LINE_LOOP TRIANGLES TRIANGLE_STRIP
97
- TRIANGLE_FAN QUADS QUAD_STRIP POLYGON
98
- が使える.OpenGLと同じ.
99
-
100
- # 基本的なループ構造
101
- window 100,100
102
- def display
103
- line 0,0,100,100
104
- end
105
- mainloop
106
- とすると,ループして,描画しつづける.
107
-
108
- # マウス入力
109
- ループした状態で,
110
- def onMouseDown(x,y)
111
- line 0,0,x,y
112
- end
113
- などとすると,callbackがかかる.
114
- 同様に,onMouseUp, onKeyDown, onKeyUpなど.
115
-
116
- # MIDI input関係
117
- useMidiIn # midi inを使うということ宣言
118
- def onNoteOn(ch, note, vel)
119
- p [ch, note, vel]
120
- end
121
- などとできる.
122
-
123
- 同様に,onNoteOff(ch, note)もある.
124
-
125
- # ソフトサンプラー機能
126
- useSound
127
- sound = loadSound('sine.wav')
128
- sound.play(60, 100, -100) # note, vel, pan
129
- </pre>
130
- <p class="coda">
131
- 25th June 2007<br>
132
- </p>
133
- </div>
134
-
135
- <!-- insert site tracking codes here, like Google Urchin -->
136
-
137
- </body>
138
- </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
+ sglの説明
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>sglの説明</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>What is sgl?</h2>
39
+
40
+
41
+ <p>sglは,Rubyからグラフィックやサウンドを簡単に扱えるようにしたライブラ
42
+ リである.できるだけ優しくプログラミングを初められるように,シンプルな
43
+ 記述で必要最小限の動作するプログラムを作成できるようになっている.</p>
44
+
45
+
46
+ <p><a href="http://dbn.media.mit.edu/"><span class="caps">DBN</span></a> というプログラミング環境が提供していた
47
+ 理念を継承し,可能な限り簡単にプログラミングに取り組めるように工夫して
48
+ いる.DBNの理念を継承した環境として,
49
+ <a href="http://www.processing.org/">Processing</a> とは兄弟関係にあると言える.</p>
50
+
51
+
52
+ <p>グラフィックスはOpenGL,Window表示,マウス入力,キー入力などにはSDLを
53
+ 用いている.またMIDIの入出力なども組み合せて使えるようになっている.ラ
54
+ イブラリーの構造はGLUTを参考にしている.</p>
55
+
56
+
57
+ <pre syntax="ruby">
58
+ # 基本的なプログラムの例
59
+ reuire 'sgl' # 最初に必ず必要
60
+ window 100,100 # 100x100のウィンドウを生成
61
+ background 0 # 背景は黒にします
62
+ color 100 # 白を指定します
63
+ line 20,20,80,80 # 線を引きます
64
+ rect 20,20,80,80 # 四角を描きます
65
+ wait # プログラムが終了しないように待つ.ESCキーで終了する.
66
+
67
+ # 色空間
68
+ color 100,0,0 # 赤になる.r,g,bで色が使える
69
+ color 100,0,0,50 # 半透明の赤.100が不透明(デフォルト).0が完全に透明.
70
+ colorHSV 50,0,100 # hsv方式での色指定もできる.
71
+ backgroundHSV 70,0,100 # 背景の指定もhsvでできる.
72
+ colorHSV 50,0,100,50 # もちろんhsv方式でもアルファ値は指定できる.
73
+
74
+ # 3Dも使える
75
+ useFov(60) # field of view.画角を指定
76
+ useDepth # depth bufferを使う
77
+ line 20,20,20,80,80,80 # とりあえず線
78
+ color 0,100,0,50 # とりあえず半透明
79
+ box 20,20,20,80,80,80 # 箱.半透明になっている
80
+ useSmooth # 線にanti aliasがかかる.
81
+
82
+ # MIDI関係
83
+ useMidi # midiを使うということ宣言
84
+ note 1, 60, 90, 100 # ch, note, vel, msec.
85
+
86
+ # 詳細な描画について
87
+ beginObj(QUADS)
88
+ vertex 20,20
89
+ vertex 80,20
90
+ vertex 80,80
91
+ vertex 20,80
92
+ endObj
93
+ # 同様に,vertexにz軸の情報を加えれば,3Dとなる.
94
+
95
+ オブジェクトの種類は,
96
+ LINES POINTS LINE_STRIP LINE_LOOP TRIANGLES TRIANGLE_STRIP
97
+ TRIANGLE_FAN QUADS QUAD_STRIP POLYGON
98
+ が使える.OpenGLと同じ.
99
+
100
+ # 基本的なループ構造
101
+ window 100,100
102
+ def display
103
+ line 0,0,100,100
104
+ end
105
+ mainloop
106
+ とすると,ループして,描画しつづける.
107
+
108
+ # マウス入力
109
+ ループした状態で,
110
+ def onMouseDown(x,y)
111
+ line 0,0,x,y
112
+ end
113
+ などとすると,callbackがかかる.
114
+ 同様に,onMouseUp, onKeyDown, onKeyUpなど.
115
+
116
+ # MIDI input関係
117
+ useMidiIn # midi inを使うということ宣言
118
+ def onNoteOn(ch, note, vel)
119
+ p [ch, note, vel]
120
+ end
121
+ などとできる.
122
+
123
+ 同様に,onNoteOff(ch, note)もある.
124
+
125
+ # サウンド再生機能
126
+ useSound
127
+ sound = loadSound('sine.wav')
128
+ sound.play(60, 100, -100) # note, vel, pan
129
+ </pre>
130
+ <p class="coda">
131
+ 30th June 2007<br>
132
+ </p>
133
+ </div>
134
+
135
+ <!-- insert site tracking codes here, like Google Urchin -->
136
+
137
+ </body>
138
+ </html>