Document

ビジュアル情報処理 (02) 補足資料
Hiroki Takahashi
[email protected]
総合情報学科
.
.
.
.
.
.
算術演算子
.
プログラム中での四則演算
..
算術演算子: +(和算), -(差算), *(乗算), /(除算)
e.g. 3 + 5, 8 * 2
2 つの被演算子 (オペランド;operand) に対して演算
⇒ 二項演算子
.
..
.
算術演算子 (p.20; 表 3.1)
..
演算子
.
..
.
+
*
/
意味
加算
減算
乗算
除算
例
a +
a a *
a /
b
b
b
b
.
.
.
.
.
.
.
二項演算子
.
.
.
.
変数 (variable) と型 (type) (pp.22–23)
.
変数と型
..
変数 ... データの入れ物
型 ... データの種類を表す
int(整数) 型 (e.g. -20, 10)
float, double(浮動小数点) 型 (e.g. -1.23, 3.4)
.
.
.
..
.
変数
..
.
.
型付き言語: 変数に特定の型のデータだけを格納可能
変数の宣言 (declaration)
変数のデータの種類を限定
型指定子 変数名;
int a;
型指定子
変数名, 変数名, .... ;
double avg1, val x;
.
..
変数が保持する対象の種類を表すデータ型を指定
.
.
.
.
.
.
.
型指定子
.
変数 (variable) と型 (type) (pp.22–23)
.
型
..
データの種類
1, 12, -50 などの整数
1.23, -10.5 などの実数
’a’, ’x’, ’Z’ などの文字
true や false という論理値
.
.
.
.
.
.
.
.
..
int(整数) 型
float, double
(浮動小数点) 型
char(文字) 型
boolean(論理値) 型
.
.
変数 (variable) と型 (type) (pp.22–23)
表 3.2)
種類
論理型
整数型
整数型
整数型
整数型
文字型
浮動小数点型
浮動小数点型
.
説明
true または false
8bit 符号付き
16bit 符号付き
32bit 符号付き (−231 ∼ 231 − 1)
64bit 符号付き (−263 ∼ 263 − 1)
16bit Unicode 文字
32bit 浮動少数点 単精度浮動小数点
64bit 浮動少数点 倍精度浮動小数点
.
.
.
.
.
.
.
.
データ型 (p.22
..
型
boolean
byte
short
int
long
char
float
double
.
..
.
変数 (variable) と型 (type) (pp.22–23)
.
変数の取扱
..
変数名
.
英字
数字
アンダースコア ( )
先頭の文字は数字以外
camel case(命名規則) が慣習
先頭の単語は小文字
単語の切れ目の最初の文字を大文字
.
..
変数 = 式;
= ... 式の結果を変数に代入 (assignment)
等しいという意味ではない
.
.
.
.
.
.
.
変数への値の代入
.
変数 (variable) と型 (type) (pp.22–23)
.
Java の予約語 (reserved word)
..
予め指定された意味を持つ単語.他の意味で使用不可.(キーワード)
break
class
double
float
import
native
public
switch
transient
byte
const
else
for
instanceof
new
return
synchronized
try
case
continue
extends
goto
int
package
short
this
void
.
..
.
Processing のシステム変数
..
width,
height // size 命令で指定したウインドウの幅と高さ
.
..
.
.
.
.
.
boolean
char
do
finally
implements
long
protected
super
throws
while
.
.
.
.
.
abstract
catch
default
final
if
interface
private
static
throw
volatile
.
.
制御構造
.
for 文 (pp.23–25)
..
for(初期設定; 評価式; 更新式) 文
初期設定 for 文に入る前に一度だけ実行
.
.
.. .
更新式 for 文のブロックの処理を 1 度実行するたびに実行
.
.
評価式 評価式が真の間,繰り返し処理
.
.
初期設定
.
評価式
.
更新式
.
false
.
true
.
..
.
.
.
.
.
.
.
.
文.
.
制御構造
.
関係演算子 (pp.24–25)
..
2 つの値を比較
.
.
表 3.4)
.
意味
a が b よりも大きければ真
a が b よりも大きいか等しければ真
a が b よりも小さければ真
a が b よりも小さいか等しければ真
a と b が等しければ真
a と b が等しくなければ真
.
.
.
.
.
.
.
偽であれば false
.
..
.
関係・等値演算子 (表 3.3,
..
演算子
例
>
a > b
>=
a >= b
<
a < b
<=
a <= b
==
a == b
!=
a != b
.
..
.
その関係が真であれば true
.
制御構造
.
.
.
increment, decrement 演算子 (p.25)
.
..
++: 整数値を 1 増やす
--: 整数値を 1 減らす
.
..
.
.
increment, decrement 演算子 (表 3.7)
.
..
演算子
例
意味
++
a++
a の値を使用した後に,a の値を一つだけ増やす
++a
a の値を使用する前に,a の値を一つだけ増やす
−−
a−− a の値を使用した後に,a の値を一つだけ減らす
−−a a の値を使用する前に,a の値を一つだけ減らす
.
..
.
.
.
.
.
.
.
2 次元図形描画
.
練習問題 3.8(p.30) ... 参考 例題 3.3(p.20)
..
for
. 文を用いて★を描画せよ.
..
.
.
.
図 2.7(b) (p.13)
.
.
.
.
.
.
2 次元図形描画
.
.
.
.
.
.
2 次元図形描画
.
頂点の計算方法 (p.21)
..
xn
yn
.
(
)
2 π
= r cos n · 2π · −
+ xc
5
2
(
)
2 π
= r sin n · 2π · −
+ yc
5
2
(1)
(2)
.
..
(xn , yn ): n 番目の頂点の座標 (0 ≤ n ≤ 4)
π
P0 O と x 軸の角度: −
2
2
Pn O と Pn+1 O の角度: 2π ·
5
.
.
.
.
.
.
.
r : ★の半径
(xc , yc ): ★の中心座標
.
2 次元図形描画
.
頂点の計算方法 (p.21)
..
1 番目の頂点: θ = − π2 (rad) ⇐ 時計周りが正の回転
.
sin, cos 命令の引数: 弧度 [rad]
.
..
度数から弧度への変換: radians 命令
.
.
.
.
.
.
.
弧度法: 1[rad] = 半径と同じ長さの弧に対応する角度
360 度 = 2π[rad]
.
2 次元図形描画
.
★の描画 (fiveStarFor.pde)
..
.
background(255);
smooth();
noStroke();
fill(152, 251, 152);
.
..
.
.
.
.
.
.
.
int r = height / 2;
beginShape();
for(int i = 0; i < 5; i++){
float theta = 2 * TWO PI / 5 * i − HALF PI;// TWO PI,HALF PI: マクロ
// theta = radians(144 * i - 90);
10
int x, y;
x = int(r * cos(theta) + width / 2);// height:システム変数 (window の高さ)
y = int(r * sin(theta) + height / 2);// width:システム変数 (window の幅)
vertex(x, y);
}
endShape();
.
m 進表現 (m-notation)
.
10 進数 (decimal numbers)
..
人間が数を数える場合?
.
指を折りながら (伸ばしながら:欧米人)
両手の指の数 ... 10 本 ... 基本単位
n 桁の自然数 d = dn−1 dn−2 . . . d1 d0 ⇐10 進表現
dn は n + 1 桁目の数
d の大きさ | d | は?
| d |= dn−1 · 10n−1 + dn−2 · 10n−2 + · · · + d1 · 101 + d0 · 100
ただし,di (0 ≤ i ≤ n − 1) は,0, 1, . . . , 9 のいずれか
.
..
| d | = 2 × 102 + 4 × 101 + 5 × 100
= 2 × 100 + 4 × 10 + 5 × 1
.
.
.
.
.
.
.
例えば: d = 245 は?
.
m 進表現 (m-notation)
.
2 進数 (binary numbers)
..
コンピュータで処理する場合?
.
演算素子 ... 0 と 1
n 桁の自然数 (d)2 = (dn−1 dn−2 . . . d1 d0 ) ⇐ 2 進表現
| (d)2 |= dn−1 · 2n−1 + dn−2 · 2n−2 + · · · + d1 · 21 + d0 · 20
ただし,di (0 ≤ i ≤ n − 1) は,0, 1 のいずれか
例えば: (1011)2 は?
.
..
= 11
.
.
.
.
.
.
.
| (1011)2 | = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20
= 8+0+2+1
.
m 進表現 (m-notation)
.
m 進数
..
8 進数,16 進数も 2 進数,10 進数同様
.
m 進表現での自然数 d の表し方 (n 桁の m 進数)
d=
n−1
∑
di · mi
(0 ≤ di ≤ m − 1)
(3)
i=0
例えば,16 進数の (ff )16 を 10 進数で表すと?
16 進数の表現 ... 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f
16 進数: (ff )16 = f × 161 + f × 160 = (255)10
0xff
.
.
.
.
.
.
.
プログラムでの 16 進数の表現
.
..
.