sgl 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
提出してないことになってしまうので,注意する.
|