SlideShare a Scribd company logo
1 of 55
Download to read offline
早稲田大学 基幹理工学部 表現工学科
長研究室 B4 鈴木 遼
4 June 2013
今日やること
 Processing とプログラミングの基礎
 簡単なことを 11 項目だけ覚えます
1. 文字列リテラル [1/3]
 ダブルクオーテーション “ ” で囲まれた文
章は文字列リテラルという文字列データ
println("Waseda");
println("Media Design");
Waseda
Media Design
1. 文字列リテラル [2/3]
 数値データは計算されるが、文字列データ
はそのまま
println(1+1);
println(”1+1”);
2
1+1
1. 文字列リテラル [3/3]
 数値データと文字列データは + 演算子で
連結できる
println(101+” Dalmatians");
println("("+5+","+10+")");
101 Dalmatians
(5,10)
2. if 文 [1/6]
 条件式が true のとき {} の中身を実行
int age = 9;
if(age<=12)
{
println(“child fare");
}
if(条件式)
{
trueのときの処理;
}
2. if 文 [2/6]
int age = 19;
if(age<=12)
{
println(“child fare");
}
2. if 文 [3/6]
 条件式が false のときは else 節を実行
int age = 30;
if(age<=18)
{
println(“child fare");
}
else
{
println(“adult fare");
}
2. if 文 [4/6]
 [問題] 100 から 0 までカウントダウン
 ただし 3 の倍数の時は末尾に ! をつける
100
99!
98
97
96!
…
0!
2. if 文 [5/6]
 解答例
for(int i=100; i>=0; --i)
{
if(i%3==0)
{
println(i+"!");
}
else
{
println(i);
}
}
2. if 文 [6/6]
 注意) 比較演算は連続できない
▼ 間違ったプログラム
 この次の論理演算子を使う
int age = 15;
if(18<age<65)
{
println(“adult fare");
}
3. 論理演算 [1/3]
 && 論理 AND 演算子 (かつ)
 || 論理 OR 演算子 (または)
x は 100 未満 かつ 4 の倍数
x<100 && x%4==0
x は 3 の倍数 または 4 の倍数
x%3==0 || x%4==0
3. 論理演算 [2/3]
int age = 15;
if(18<age && age<65)
{
println(“adult fare");
}
else
{
println(“discount fare");
}
3. 論理演算 [3/3]
int age = 15;
if(age<=18 || 65<=age)
{
println(“discount fare");
}
else
{
println(“adult fare");
}
4. 浮動小数点数 [1/4]
 小数点を含む数を書くと、それは浮動小数
点数リテラルと呼ばれる数値データになる
2.5
-1.2
4. 浮動小数点数 [2/4]
 浮動小数点数リテラルは float 型
float x = 2.5;
float y = -1.2;
println(x);
println(y);
4. 浮動小数点数 [3/4]
 float 型
 扱える値はおよそ –(1038) ~ 1038 の実数
 できる計算は + - * / % など
 注意)近似なのでぴったり正確にはならない
ことがある
 == や != の演算は避ける
4. 浮動小数点数 [4/4]
float x = 2.5;
float y = -1.2;
println(x+3.5);
println(y*2.0);
println(x*y);
5. 数学関数 [1/5]
 sqrt(x) 関数は x の平方根を返す
float x = sqrt(81);
float y = sqrt(2.2);
println(x);
println(y);
5. 数学関数 [2/5]
 abs(x) 関数は x の絶対値を返す
float x = abs(2.0);
float y = abs(-3.5);
println(x);
println(y);
5. 数学関数 [3/5]
 radians(x) 関数は x を度数法から弧度法
(ラジアン)に変換した値を返す
float x = radians(90);
float y = radians(180);
println(x);
println(y);
5. 数学関数 [4/5]
 関数から返ってきた値を直接使っても OK
println(sqrt(2.0));
println(abs(-2.5));
println(radians(45));
5. 数学関数 [5/5]
 sin(x), cos(x) 関数はラジアン角 x のサイ
ン・コサインを返す
float x = sin(1.2);
float y = cos(radians(180));
println(x);
println(y);
復習
50%
文字列リテラル
if
else
&&
||
float 型
sqrt
abs
radians
sin
cos
6. 点を描く [1/2]
 点を描く
 x : X 座標
 y : Y 座標
point(x,y);
6. 点を描く [2/2]
size(600,400);
point(5,5);
7. 三角形を描く [1/2]
 三角形を描く
 x1 …y3 : 各頂点の座標(時計回り)
triangle(x1, y1, x2, y2, x3, y3);
7. 三角形を描く [2/2]
size(600,400);
triangle(5,5, 400,50, 500,300);
8. 四角形を描く [1/2]
 四角形を描く
 x1 …y4 : 各頂点の座標(時計回り)
quad(x1, y1, x2, y2, x3, y3, x4, y4);
8. 四角形を描く [2/2]
size(600,400);
quad(5,5, 400,50, 500,300, 50,200);
9. 円の一部を描く [1/5]
 円の一部を描く
 x, y : 円の中心座標
 w, h : 円の幅と高さ
 start : 開始角度(ラジアン)
 stop : 終了角度(ラジアン)
arc(x, y, w, h, start, stop);
9. 円の一部を描く [2/5]
0
90
270
180
9. 円の一部を描く [3/5]
size(600,400);
arc(100,200,150,150,0,radians(45));
arc(300,200,150,150,0,radians(270));
arc(500,200,150,150,radians(180),radians(270));
9. 円の一部を描く [4/5]
 [問題] 丸を食べるキャラクターを描こう
9. 円の一部を描く [5/5]
 解答例
size(600,400);
background(0,0,0);
fill(255,255,0);
arc(150,200,200,200,radians(30),radians(330));
ellipse(300,200,50,50);
ellipse(400,200,50,50);
ellipse(500,200,50,50);
10. HSV 表色系 [1/6]
 RGB 表色系
 赤
 緑
 青
 の 3 成分で色を表現
10. HSV 表色系 [2/6]
 HSV 表色系
 色相 (Hue)
 彩度 (Saturation)
 明度 (Value)
 の 3 成分で色を表現
 Processing では HSB (B=Brightness) と呼ぶ
10. HSV 表色系 [3/6]
 色相 Hue ・・・ 「色合い」
 赤っぽい、青っぽいといった色合い
 色相を環状に並べたものを色相環と言い、
赤は 0°, 黄色は 60° といったように、円上
の角度で色合いを表現
10. HSV 表色系 [4/6]
 彩度 Saturation ・・・ 「鮮やかさ」
 色相が同じでも、彩度が高ければ鮮やかに
見え、低ければグレーに見える。彩度が 0
の場合は無彩色(黒、グレー、白)になる
10. HSV 表色系 [5/6]
 明度 Value ・・・ 「明るさ」
 明度が高ければ明るい色に、低ければ暗い
色になる
10. HSV 表色系 [6/6]
 RGB で表現できるすべての色が HSV でも
表現できる
RGB HSV
255, 0, 0 0, 1.0, 1.0
0, 255, 0 120, 1.0, 1.0
0, 0, 255 240, 1.0, 1.0
255, 255, 0 60, 1.0, 1.0
89, 170, 242 208, 0.63, 0.95
112, 48, 160 274, 0.7, 0.63
11. カラーモード [1/7]
 background(), fill(), stroke() などで使う
表色系と成分の最大値を変更
 mode : 表色系。RGB または HSB
 range1… : 各成分の最大値
colorMode(mode,range1);
colorMode(mode,range1,range2,range3);
11. カラーモード [2/7]
 初期状態では最大値 255 の RGB 表色系
 R : [0, 255]
 G : [0, 255]
 B : [0, 255]
colorMode(RGB,255);
background(255,255,0);
size(600,400);
11. カラーモード [3/7]
 最大値が 100 のRGB 表色系
 R : [0, 100]
 G : [0, 100]
 B : [0, 100]
colorMode(RGB,100);
background(100,100,0);
size(600,400);
11. カラーモード [4/7]
 最大値が 1.0 のRGB 表色系
 R : [0, 1.0]
 G : [0, 1.0]
 B : [0, 1.0]
colorMode(RGB,1.0);
background(1.0,1.0,0);
size(600,400);
11. カラーモード [5/7]
 HSV 表色系
 H : [0, 360]
 S : [0.0, 1.0]
 V : [0.0, 1.0]
colorMode(HSB,360,1.0,1.0);
background(60,1.0,1.0);
size(600,400);
11. カラーモード [6/7]
 [問題] 虹のグラデーションの丸を描こう
 ヒント: 色相
11. カラーモード [7/7]
 解答例
size(600,400);
noStroke();
colorMode(HSB,360,1.0,1.0);
for(int x=0; x<7; ++x)
{
fill(x*30,1.0,1.0);
ellipse(x*100,200,100,100);
}
Complete!
100%
point
triangle
quad
arc
RGB 表色系
HSV 表色系
色相
彩度
明度
colorMode
Practice [1/3]
size(600,400);
background(40,40,40);
noStroke();
for(int y=0; y<10; ++y)
{
for(int x=0; x<15; ++x)
{
if((y+x)%2==0)
{
rect(x*40,y*40,40,40);
}
}
}
Practice [2/3]
size(600,400);
noStroke();
colorMode(HSB,360,1.0,1.0);
for(int x=0; x<600; ++x)
{
fill(x%360,1.0,1.0);
rect(x*1,0,1,400);
}
Practice [3/3]
size(600,400);
noStroke();
colorMode(HSB,360,1.0,1.0);
for(int i=0; i<36; ++i)
{
fill(i*10,1.0,1.0);
float rad = radians(i*10);
float x = 300 + cos(rad)*180;
float y = 200 - sin(rad)*180;
ellipse(x,y,30,30);
}
Challenge
 自分のイニシャルをアートっぽく表現する
例)I.D
 続きは再来週の第 3 回で!
 いよいよ動きのあるプログラムに!
Questions?
@Reputeless

More Related Content

What's hot

What's hot (19)

大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック 大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
大域的探索から局所的探索へデータ拡張 (Data Augmentation)を用いた学習の探索テクニック
 
論文読み会2018 (CodeSLAM)
論文読み会2018 (CodeSLAM)論文読み会2018 (CodeSLAM)
論文読み会2018 (CodeSLAM)
 
[論文紹介] DPSNet: End-to-end Deep Plane Sweep Stereo
[論文紹介] DPSNet: End-to-end Deep Plane Sweep Stereo[論文紹介] DPSNet: End-to-end Deep Plane Sweep Stereo
[論文紹介] DPSNet: End-to-end Deep Plane Sweep Stereo
 
Printers
PrintersPrinters
Printers
 
あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿あなたの知らないnopたち@ラボユース合宿
あなたの知らないnopたち@ラボユース合宿
 
有限要素法見本
有限要素法見本有限要素法見本
有限要素法見本
 
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​SSII2020SS:  微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
SSII2020SS: 微分可能レンダリングの最新動向 〜「見比べる」ことによる3次元理解 〜​
 
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
Unsupervised Collaborative Learning of Keyframe Detection and Visual Odometry...
 
GTFSを時刻表に可視化
GTFSを時刻表に可視化GTFSを時刻表に可視化
GTFSを時刻表に可視化
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 
3d Printing
3d Printing3d Printing
3d Printing
 
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
 
Cvpr 2021 manydepth
Cvpr 2021 manydepthCvpr 2021 manydepth
Cvpr 2021 manydepth
 
RealSenseとYOLOを用いた物体把持
RealSenseとYOLOを用いた物体把持RealSenseとYOLOを用いた物体把持
RealSenseとYOLOを用いた物体把持
 
SLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAMSLAM勉強会(3) LSD-SLAM
SLAM勉強会(3) LSD-SLAM
 
Squeeze and excitation networks
Squeeze and excitation networksSqueeze and excitation networks
Squeeze and excitation networks
 
【DL輪読会】Motion Policy Networks
【DL輪読会】Motion Policy Networks【DL輪読会】Motion Policy Networks
【DL輪読会】Motion Policy Networks
 
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォームZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
 
楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミ楽しいクォータニオンの世界 田所 第二回Rogyゼミ
楽しいクォータニオンの世界 田所 第二回Rogyゼミ
 

Similar to Processingによるプログラミング入門 第2回

初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
 
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワルAndrosia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
CODE BLUE
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1
Paweł Rusin
 
2011年11月11日
2011年11月11日2011年11月11日
2011年11月11日
nukaemon
 

Similar to Processingによるプログラミング入門 第2回 (20)

R intro
R introR intro
R intro
 
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
 
Large-Scale Object Classification Using Label Relation Graphs
Large-Scale Object Classification Using Label Relation GraphsLarge-Scale Object Classification Using Label Relation Graphs
Large-Scale Object Classification Using Label Relation Graphs
 
Rの初歩: 6. グラフィックス
Rの初歩:  6. グラフィックスRの初歩:  6. グラフィックス
Rの初歩: 6. グラフィックス
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワルAndrosia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
Androsia:一歩先のメモリ内Androidアプリケーションデータの保護 by サミット・アンワル
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
Pythonintro
PythonintroPythonintro
Pythonintro
 
Processing.jsでおうちハック
Processing.jsでおうちハックProcessing.jsでおうちハック
Processing.jsでおうちハック
 
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
 
Ssaw08 0916
Ssaw08 0916Ssaw08 0916
Ssaw08 0916
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
第2回R勉強会1
第2回R勉強会1第2回R勉強会1
第2回R勉強会1
 
CG2013 05
CG2013 05CG2013 05
CG2013 05
 
2011年11月11日
2011年11月11日2011年11月11日
2011年11月11日
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回
 
Rで学ぶロバスト推定
Rで学ぶロバスト推定Rで学ぶロバスト推定
Rで学ぶロバスト推定
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
R language definition3.1_3.2
R language definition3.1_3.2R language definition3.1_3.2
R language definition3.1_3.2
 

More from Ryo Suzuki

Processingによるプログラミング入門 第6回
Processingによるプログラミング入門 第6回Processingによるプログラミング入門 第6回
Processingによるプログラミング入門 第6回
Ryo Suzuki
 

More from Ryo Suzuki (9)

Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
Processingによるプログラミング入門 第6回
Processingによるプログラミング入門 第6回Processingによるプログラミング入門 第6回
Processingによるプログラミング入門 第6回
 
Processingによるプログラミング入門 第5回
Processingによるプログラミング入門 第5回Processingによるプログラミング入門 第5回
Processingによるプログラミング入門 第5回
 
Processingによるプログラミング入門 第3回
Processingによるプログラミング入門 第3回Processingによるプログラミング入門 第3回
Processingによるプログラミング入門 第3回
 
CG 論文講読会 2013/5/20 "Clustered deferred and forward shading"
CG 論文講読会 2013/5/20 "Clustered deferred and forward shading"CG 論文講読会 2013/5/20 "Clustered deferred and forward shading"
CG 論文講読会 2013/5/20 "Clustered deferred and forward shading"
 
Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回Processing によるプログラミング入門 第1回
Processing によるプログラミング入門 第1回
 
Kinect 入門
Kinect 入門Kinect 入門
Kinect 入門
 
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
CG 論文講読会 2013/2/12 "A reconstruction filter for plausible motion blur"
 

Recently uploaded

Recently uploaded (10)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

Processingによるプログラミング入門 第2回