SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
早稲田大学 基幹理工学部 表現工学科
長研究室 B4 鈴木 遼
31 July 2013
今日やること
 Processing とプログラミングの基礎
 今日は 12 項目
1. 関数とは
入力 機械 出力
1. 関数とは
引数 関数 戻り値
1. 関数とは
引数 関数 戻り値
abs()-3.5 3.5
sqrt()16.0 4.0
2. 関数の作り方
戻り値の型 名前(引数の型 引数名)
{
何らかの処理
return 戻り値 ;
}
2. 関数の作り方
 与えられた数を二乗する Square() 関数を作る
float Square(float x)
{
return x*x;
}
戻り値の型 名前(引数の型 引数名)
{
何らかの処理
return 戻り値 ;
}
2. 関数の作り方
float Square(float x)
{
return x*x;
}
void setup()
{
float s = Square(12);
println(s);
}
void draw()
{
}
2. 関数の作り方
 絶対値を返す Abs() 関数を作る
float Abs(float x)
{
if(x<0)
{
return –x;
}
else
{
return x;
}
}
2. 関数の作り方
float Abs(float x)
{
if(x<0)
{
return –x;
}
else
{
return x;
}
}
void setup()
{
println(Abs(-3.5));
}
void draw()
{
}
2. 関数の作り方
 与えられた 2 つの値のうち大きい方の値
を返す Max() 関数
float Max(float x, float y)
{
if(x>y)
{
return x;
}
else
{
return y;
}
}
2. 関数の作り方
float Max(float x, float y)
{
if(x>y)
{
return x;
}
else
{
return y;
}
}
void setup()
{
println(Max(6.6, 3.5));
println(Max(-3.3, 5.5));
}
void draw()
{
}
2. 関数の作り方
 与えられた 2 つの値のうち大きい方の値
を返す Min() 関数
float Min(float x, float y)
{
if(x>y)
{
return y;
}
else
{
return x;
}
}
2. 関数の作り方
float Min (float x, float y)
{
if(x>y)
{
return y;
}
else
{
return x;
}
}
void setup()
{
println(Min(6.6, 3.5));
println(Min(-3.3, 5.5));
}
void draw()
{
}
2. 関数の作り方
 与えられた 3 つの値のうち最大の値を返
す Max3() 関数
float Max3(float x, float y, float z)
{
return Max(x, Max(y, z));
}
2. 関数の作り方
 与えられた中心位置と半径の円を描く
Circle() 関数
 戻り値が必要ない場合、戻り値の型は
void(ヴォイド)で、return しない
void Circle(float x, float y, float r)
{
ellipse(x,y,r*2,r*2);
}
2. 関数の作り方
void Circle(float x, float y, float r)
{
ellipse(x,y,r*2,r*2);
}
void setup()
{
size(600,400);
}
void draw()
{
Circle(300,200,200);
}
3. max(), min() 関数
 Processing で最初から使える関数
 大きい方の値、小さい方の値を返す
max(a,b)
min(a,b);
4. dist() 関数
 2 点間 (x1,y1) – (x2,y2) の距離を返す
 dist(0,0,1,1) = 1.41421…
dist(x1,y1,x2,y2)
4. dist() 関数
void setup()
{
size(600,400);
textSize(30);
}
void draw()
{
background(0,0,0);
ellipse(300,200,10,10);
float d = dist(300,200,mouseX,mouseY);
text(d,50,50);
}
5. 時刻関数
 現在の時、分、秒を int 型の値で返す
hour()
minute();
second();
6. クラスとは
いくつかの変数 1 つの型
int y
int x
int w
int h
Rectangle
型
7. クラスの作り方
class クラス名
{
いくつかのメンバ変数
}
7. クラスの作り方
class Rectangle
{
float x, y, w, h;
}
8. クラスを使う
 new を使って作成
Rectangle r = new Rectangle();
class Rectangle
{
float x, y, w, h;
}
void setup()
{
size(600,400);
}
void draw()
{
}
8. クラスを使う
Rectangle r = new Rectangle();
class Rectangle
{
float x, y, w, h;
}
void setup()
{
size(600,400);
r.x = 200;
r.y = 100;
r.w = 300;
r.h = 200;
}
void draw()
{
rect(r.x, r.y, r.w, r.h);
}
. を使ってメンバにアクセス. を使ってメンバにアクセス
9. コンストラクタ
class クラス名
{
メンバ変数
クラス名( 引数 )
{
何らかの処理
}
}
9. コンストラクタ
 new のときの引数と、初期化の方法を決
めることができる
class Rectangle
{
float x, y, w, h;
Rectangle(float _x, float _y, float _w, float _h)
{
x = _x;
y = _y;
w = _w;
h = _h;
}
}
9. コンストラクタ
Rectangle r = new Rectangle(200,100,300,200);
class Rectangle
{
float x, y, w, h;
Rectangle(float _x, float _y, float _w, float _h)
{
x = _x;
y = _y;
w = _w;
h = _h;
}
}
void setup()
{
size(600,400);
}
void draw()
{
rect(r.x, r.y, r.w, r.h);
}
10. メンバ関数
 メンバ関数は、メンバ変数を扱う関数
class クラス名
{
メンバ変数
メンバ関数
}
10. メンバ関数
class Rectangle
{
float x, y, w, h;
Rectangle(float _x, float _y, float _w, float _h)
{
x = _x;
y = _y;
w = _w;
h = _h;
}
float area()
{
return w * h;
}
void draw()
{
rect(x,y,w,h);
}
}
10. メンバ関数
Rectangle r = new Rectangle(200,100,300,200);
class Rectangle
{
////////////
////////////
}
void setup()
{
size(600,400);
println(r.area());
}
void draw()
{
r.draw();
}
11. クラスの配列
Rectangle[] rects = new Rectangle[6];
class Rectangle
{
////////////
////////////
}
void setup()
{
size(600,400);
for(int i=0; i<rects.length; ++i)
{
rects[i] = new Rectangle(i*100,100,50,50);
}
}
void draw()
{
for(int i=0; i<rects.length; ++i)
{
rects[i].draw();
}
}
12. そのほかの便利な機能
 String は文字列を代入できる型
String message = “Hello”;
println(message);
12. そのほかの便利な機能
 color は色を代入できる型であり、色を作
成する関数でもある
color c = color(255,0,0);
background(c);
12. そのほかの便利な機能
class Rectangle
{
//////
void draw(color c)
{
fill(c);
rect(x,y,w,h);
}
}
void draw()
{
r.draw( color(255,0,0) );
}
 簡単アプリ開発にチャレンジ
http://p.tl/ishH

Más contenido relacionado

La actualidad más candente

Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
onozaty
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則
hayabusa333
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Yuya Unno
 

La actualidad más candente (20)

Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善
 
Tensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャTensorflow Liteの量子化アーキテクチャ
Tensorflow Liteの量子化アーキテクチャ
 
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
駒場学部講義2019 「統合失調症、感覚運動随伴性、自由エネルギー原理」
 
PandasとSQLとの比較
PandasとSQLとの比較PandasとSQLとの比較
PandasとSQLとの比較
 
PySpark を分析用途に使っている話
PySpark を分析用途に使っている話PySpark を分析用途に使っている話
PySpark を分析用途に使っている話
 
これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由これからの Vision & Language ~ Acadexit した4つの理由
これからの Vision & Language ~ Acadexit した4つの理由
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
 
【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル【DL輪読会】マルチモーダル 基盤モデル
【DL輪読会】マルチモーダル 基盤モデル
 
リンク予測に基づく共同研究者推薦システムの試作
リンク予測に基づく共同研究者推薦システムの試作リンク予測に基づく共同研究者推薦システムの試作
リンク予測に基づく共同研究者推薦システムの試作
 
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
【DL輪読会】DINOv2: Learning Robust Visual Features without Supervision
 
k-匿名化が誘発する濡れ衣:解決編
k-匿名化が誘発する濡れ衣:解決編k-匿名化が誘発する濡れ衣:解決編
k-匿名化が誘発する濡れ衣:解決編
 
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
 
【DL輪読会】Reflash Dropout in Image Super-Resolution
【DL輪読会】Reflash Dropout in Image Super-Resolution【DL輪読会】Reflash Dropout in Image Super-Resolution
【DL輪読会】Reflash Dropout in Image Super-Resolution
 
【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について【DL輪読会】Hopfield network 関連研究について
【DL輪読会】Hopfield network 関連研究について
 
(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介(文献紹介)デブラー手法の紹介
(文献紹介)デブラー手法の紹介
 
20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔
20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔
20180115_東大医学部機能生物学セミナー_深層学習の最前線とこれから_岡野原大輔
 
#FTMA15 第一回 鬼コース 全PDF
#FTMA15 第一回 鬼コース 全PDF#FTMA15 第一回 鬼コース 全PDF
#FTMA15 第一回 鬼コース 全PDF
 
2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデル2 6.ゼロ切断・過剰モデル
2 6.ゼロ切断・過剰モデル
 
漏れのある抽象化の法則
漏れのある抽象化の法則漏れのある抽象化の法則
漏れのある抽象化の法則
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 

Similar a Processingによるプログラミング入門 第6回

速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
 
Sns suite presentation
Sns suite presentationSns suite presentation
Sns suite presentation
Jason Namkung
 
Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説
JPCERT Coordination Center
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScript
Ashitaba YOSHIOKA
 
サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよ
koji lin
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
Atsushi Tadokoro
 
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
Tomoharu ASAMI
 

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

速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
JavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 AutumnJavaScript/CSS 2015 Autumn
JavaScript/CSS 2015 Autumn
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
Sns suite presentation
Sns suite presentationSns suite presentation
Sns suite presentation
 
現実世界のJRuby
現実世界のJRuby現実世界のJRuby
現実世界のJRuby
 
Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説Javaセキュアコーディングセミナー東京第1回演習の解説
Javaセキュアコーディングセミナー東京第1回演習の解説
 
Implementation patterns
Implementation patternsImplementation patterns
Implementation patterns
 
Project lambda
Project lambdaProject lambda
Project lambda
 
現実世界のJRuby(ショートバージョン)
現実世界のJRuby(ショートバージョン)現実世界のJRuby(ショートバージョン)
現実世界のJRuby(ショートバージョン)
 
今さら始めるCoffeeScript
今さら始めるCoffeeScript今さら始めるCoffeeScript
今さら始めるCoffeeScript
 
サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよ
 
JavaScriptクイックスタート
JavaScriptクイックスタートJavaScriptクイックスタート
JavaScriptクイックスタート
 
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング(Ruby使いのための)Scalaで学ぶ関数型プログラミング
(Ruby使いのための)Scalaで学ぶ関数型プログラミング
 
Best practice laravel
Best practice laravelBest practice laravel
Best practice laravel
 
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
C#の新機能勉強会 ~ C#7、8の新機能を活用して速く安全なプログラムを書こう~
 
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使うXtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
 
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
 

Más de Ryo Suzuki

Más de Ryo Suzuki (9)

Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
Processingによるプログラミング入門 第5回
Processingによるプログラミング入門 第5回Processingによるプログラミング入門 第5回
Processingによるプログラミング入門 第5回
 
Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回Processingによるプログラミング入門 第4回
Processingによるプログラミング入門 第4回
 
Processingによるプログラミング入門 第3回
Processingによるプログラミング入門 第3回Processingによるプログラミング入門 第3回
Processingによるプログラミング入門 第3回
 
Processingによるプログラミング入門 第2回
Processingによるプログラミング入門 第2回Processingによるプログラミング入門 第2回
Processingによるプログラミング入門 第2回
 
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"
 
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"
 

Último

Último (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介: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...
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: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によるプログラミング入門 第6回