sgl 0.3.1 → 0.4.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.
- data/ChangeLog +234 -0
- data/Manifest.txt +94 -0
- data/Rakefile +16 -5
- data/examples/cocoa1-basic.rb +14 -0
- data/examples/cocoa10-transparent.rb +26 -0
- data/examples/cocoa11-application.rb +13 -0
- data/examples/cocoa2-draw.rb +23 -0
- data/examples/cocoa3-affine.rb +29 -0
- data/examples/cocoa4-font.rb +24 -0
- data/examples/cocoa5-image.rb +22 -0
- data/examples/cocoa6-sound.rb +24 -0
- data/examples/cocoa7-movie.rb +40 -0
- data/examples/cocoa8-movieoverlay.rb +42 -0
- data/examples/cocoa9-streaming.rb +40 -0
- data/examples/opengl1-basic.rb +14 -0
- data/examples/opengl11-application.rb +13 -0
- data/examples/opengl2-draw.rb +23 -0
- data/examples/opengl3-affine.rb +29 -0
- data/examples/sample1.rb +11 -0
- data/examples/sample10.rb +16 -0
- data/examples/sample11.rb +22 -0
- data/examples/sample11a.rb +33 -0
- data/examples/sample12.rb +30 -0
- data/examples/sample12a.rb +35 -0
- data/examples/sample13.rb +116 -0
- data/examples/sample15.rb +24 -0
- data/examples/sample16.rb +31 -0
- data/examples/sample16a.rb +35 -0
- data/examples/sample6.rb +18 -0
- data/examples/sample7.rb +16 -0
- data/examples/sample9.rb +20 -0
- data/examples/sgl-sound1.rb +6 -0
- data/examples/sgl-sound2.rb +19 -0
- data/examples/sine.ogg +0 -0
- data/examples/testgl.rb +169 -0
- data/lib/sgl/bass-api.rb +202 -0
- data/lib/sgl/bass-sample.rb +106 -0
- data/lib/sgl/bass.rb +46 -0
- data/lib/sgl/cocoa-app.rb +43 -0
- data/lib/sgl/cocoa-color.rb +65 -0
- data/lib/sgl/cocoa-draw.rb +72 -0
- data/lib/sgl/cocoa-event.rb +229 -0
- data/lib/sgl/cocoa-media.rb +144 -0
- data/lib/sgl/cocoa-notuse.rb +493 -0
- data/lib/sgl/cocoa-window.rb +203 -0
- data/lib/sgl/cocoa.rb +8 -0
- data/lib/sgl/notuse-objs.rb +358 -0
- data/lib/sgl/opengl-app.rb +38 -0
- data/lib/sgl/opengl-color.rb +44 -0
- data/lib/sgl/opengl-draw.rb +260 -0
- data/lib/sgl/opengl-event.rb +325 -0
- data/lib/sgl/opengl-modules.rb +22 -0
- data/lib/sgl/opengl-window.rb +224 -0
- data/lib/sgl/opengl.rb +7 -0
- data/lib/sgl/sgl-basic.rb +61 -0
- data/lib/sgl/sgl-button.rb +135 -0
- data/lib/sgl/sgl-client.rb +21 -0
- data/lib/sgl/sgl-color.rb +82 -0
- data/lib/sgl/sgl-connect.rb +9 -0
- data/lib/sgl/sgl-objlib.rb +0 -0
- data/lib/sgl/sgl-objs.rb +0 -0
- data/lib/sgl/sgl-server.rb +58 -0
- data/lib/sgl/sgl-sound.rb +24 -0
- data/lib/sgl/sgl-spring.rb +216 -0
- data/lib/sgl/sgl-timer.rb +72 -0
- data/lib/sgl/sgl.rb +5 -0
- data/lib/sgl/version.rb +2 -2
- data/scripts/makemanifest.rb +20 -0
- data/test/test_bass.rb +27 -0
- data/test/test_cocoa_app.rb +5 -5
- data/test/test_helper.rb +9 -1
- data/test/test_module_ruby16.rb +22 -21
- data/test/test_opengl_app.rb +4 -5
- data/test/test_opengl_basic.rb +3 -4
- data/test/test_opengl_fullscreen.rb +4 -6
- data/test/test_opengl_novice.rb +3 -6
- data/test/test_sgl.rb +4 -27
- data/test/test_sound.rb +15 -0
- data/website/challenge1.html +91 -0
- data/website/challenge1.txt +30 -0
- data/website/challenge2.html +144 -0
- data/website/challenge2.txt +73 -0
- data/website/challenge3.html +63 -0
- data/website/challenge3.txt +15 -0
- data/website/cocoa.html +88 -0
- data/website/cocoa.txt +35 -0
- data/website/description.html +138 -0
- data/website/description.txt +90 -0
- data/website/exercise1.html +264 -0
- data/website/exercise1.txt +192 -0
- data/website/exercise2.html +683 -0
- data/website/exercise2.txt +597 -0
- data/website/exhibition.html +84 -0
- data/website/exhibition.txt +24 -0
- data/website/howto.html +134 -0
- data/website/howto.txt +56 -0
- data/website/index.html +17 -9
- data/website/index.txt +13 -4
- data/website/sound.html +141 -0
- data/website/sound.txt +87 -0
- data/website/stylesheets/grade.png +0 -0
- data/website/stylesheets/screen.css +21 -20
- 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 < 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
|
+
提出してないことになってしまうので,注意する.
|