Skip to main content More Related Content
PPTX
PDF
PDF
競技プログラミングにおけるコードの書き方とその利便性 PDF
PDF
PPTX
PDF
PDF
What's hot
PDF
ODP
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜 PPTX
PDF
PDF
C++コンパイラ GCCとClangからのメッセージをお読みください PDF
PDF
PDF
PDF
X hago2 shortcoding 20110827 PDF
PPTX
PDF
PDF
PDF
PDF
PDF
PDF
PDF
Similar to Processing
PDF
PDF
PDF
PCD2019 TOKYO ワークショップ「2時間で!Processingでプログラミング入門」 PPTX
PPTX
PDF
PDF
PPTX
PPTX
PDF
Processing によるプログラミング入門 第1回 PDF
openFrameworks Workshop in Kanazawa v001 PDF
Processingによるプログラミング入門 第4回 PDF
Processingによるプログラミング入門 第2回 PDF
PDF
PDF
Processingによるプログラミング入門 第3回 PDF
PDF
Unity2015_No10_~UGUI&Audio~ PDF
Processingによるプログラミング入門 第6回 PDF
Processing
- 1.
目次
●
インストール
●
とりあえず使ってみる
●
動かしてみる
●
函数の作り方
●
クラス
●
プログラムの慣習
●
まとめ
- 2.
1. インストール
●
“processing”で検索
●
“processing.org”というサイトにアクセス
- 3.
1. インストール
●
“Download Processing”をクリック
●
自分の環境にあったものをダウンロード
- 4.
1. インストール
●
Windowsの人はzipファイルを適当な場所に展
開するだけ
●
Macの人は.dmgファイルを使っていつも通り
にインストール
→ それでは使ってみよう!
→ をダブルクリック
- 5.
2. とりあえず使ってみる
●
左上の再生みたいなボ
タンを押してみよう!
これ ●
これがプログラムを走
らせるボタン。一番良
く使う
●
“Ctrl+R”(Windows)
●
“Command+R”(Mac)
- 6.
- 7.
2. とりあえず使ってみる
*これを打ち込んで、走らせてみてください。
*走らなければ何かミスがあります。
void setup(){
background(0); //背景を黒に
size(300,300); //ウィンドウを300x300に
smooth(); //きれいに表示させるための呪文
}
void draw(){
fll(255,0,0); //RGBで塗りつぶしの色指定
noStroke(); //輪郭線なし
ellipse(100,100,50,50); //中心(100,100)幅高さが50の楕円(この場合は正円)を描く
noFill(); //塗りつぶしなし
stroke(0,0,255); //輪郭線の色指定
rect(200,150,80,100); //左上の頂点が(200,150)の幅80,高さ100の長方形を描く
}
※ 数学とは違い、コンピュータではy軸が下向きなので注意
- 8.
2. とりあえず使ってみる
●
こんな感じな画面が出
ましたか?
●
数字の部分をいろいろ
弄ってみてください
●
どの数字がどこに対応
してるか分かると思い
ます
- 9.
3. 動かしてみる
●
Processingでは
●
setup()を一度だけ実行
●
draw()を繰り返し実行
しています。
void setup(){
... void draw(){
} ...
}
- 10.
3. 動かしてみる
●
それじゃ、さっきのプログラムを変えて、
円を回転させてみよう。
foat phase = 0;
void setup(){
background(0);
size(300,300);
smooth();
}
void draw(){
fll(255,0,0);
noStroke();
ellipse(150+100*cos(phase),150+100*sin(phase),50,50);
phase += TWO_PI / 360; //回転角を1°ずつふやす。
while( phase > TWO_PI ) phase -= TWO_PI; //回転角を0°から360°の間に
}
- 11.
3. 動かしてみる
●
表示がおかしい。
●
コンピュータは
描き直すのではなく
上塗りしていく
↓
●
一度塗りつぶそう。
- 12.
3. 動かしてみる
foat phase= 0;
void setup(){
background(0);
size(300,300);
smooth();
}
void draw(){
Background(0); //塗りつぶし
fll(255,0,0);
noStroke();
ellipse(150+100*cos(phase),150+100*sin(phase),50,50);
phase += TWO_PI / 360;
while( phase > TWO_PI ) phase -= TWO_PI;
}
- 13.
3. 動かしてみる
●
できた!
●
今まで出てきた函数
– size(), background(),
smooth(), fll(), noFill(),
stroke(), noStroke(),
ellipse(), rect(), cos(), sin()
– これ以外にもいっぱい函数
あります。
- 14.
3. 動かしてみる
●
函数をドラッグして選択して
Ctrl(Command)+Shift+F
●
するとリファレンス(説明書)が出てきます
- 15.
4. 函数の作り方
●
函数とは
●
いくつかの処理をまとめたもの
– 同じ処理を何回も書いてもいいんだけど面倒
– 処理を読みやすい
例えば、
– 「赤く塗りつぶす」「輪郭線をなくす」「円を描く」
という3つの処理ではなく、
「赤い輪郭線のない円を描く」という1つの処理にまと
めると、何回も書くときに楽だし、読みやすい。
- 16.
4. 函数の作り方
●
函数を作るには次のようにかきます。
型 函数名(引数1, 引数2, ...){
処理.....
return 返り値;
}
●
例えば、
– 整数aと整数bを受け取って、足し合わせる函数
int add(int _a, int _b){
int c = _a+_b;
return c;
}
- 17.
4. 函数の作り方
●
型とは
コンピュータが扱うデータはいろいろある。
e.g.) 整数、実数、文字、真偽値 etc.
それぞれを型と呼ぶ。
具体的には
整数型: int型など
実数型: foat型など
文字型: char型, ( String型 )など
真偽値: bool型
●
さっきの函数は整数の足し算で、整数を返すので函
数の型としてint型がつかわれている。
- 18.
4. 函数の作り方
●
一度函数を作ってしまえば、そのプログラム内
では、用意されてる函数(ellipseとか)と同じよ
うに使えます。
●
昔、作った物で「何をやってるんだ?」ってな
ることが結構ある。一つのまとまった処理を函
数にまとめておくと、後から見ても見やすい。
- 19.
5. クラス
●
クラスとは
いろんな数値や函数をもったモノを作る「設計図」
●
具体的には
●
車(car)という物には燃料(fuel)という数値や走る
(run)という機能を持っている。
– 車の燃料→car.fuel
– 車が走る→car.run()
●
クラスの中の函数のことを特にメソッドという
- 20.
5. クラス
●
クラスはあくまで設計図
●
設計図をもとにモノを作らないといけない
– このモノをインスタンスという
– このモノを作ることをインスタンス化という
●
逆にいうと、
– 一度、設計図を作ると同じ物を大量生産できる
- 21.
5. クラス
●
クラスの作り方
class クラス名{
修飾子 型 変数...
コンストラクタ
修飾子 型 メソッド(引数){
}...
}
- 22.
5. クラス
●
修飾子とは
public, private, protectedの三つある
– public → 全体に公開
– private → 公開しない
– priotectedについては最初のうちは必要ないので省略
– 公開するとクラスの外から変数を書き換えることができ
て便利
– でも書き換える必要がないものを公開してしまうと、間
違えて書き換えてしまい、バグがおきることがある。
– イメージとしては時計
●
使ってる人は針だけ見えればいい。
●
中の構造は隠しておかないと、間違って壊してしまう。
- 23.
5. クラス
●
コンストラクタ
コンストラクタとは初期化するための函数で、
クラスをもとにインスタンスが作られるときに実行
されます。
●
コンストラクタの作り方
クラス名(引数){
処理...
}
- 24.
5. クラス
●
だいたいこんな形になる。
class Car{
public foat fuel;
...
Car(int _fuel){
fuel = _fuel;
...
}
public void run(){
vel += 1;
pos += vel;
fuel -= 1;
...
}
...
}
- 25.
5. クラス
●
インスタンス化の仕方
Car car1;
void setup(){
car1 = new Car(100); // 最初の燃料が100
}
●
流れとしては
– 「car1っていうのはCarである」
– 「Carに100を入れて新しく作ってcar1とする」
●
ちょっと冗長ですが。
- 26.
5. クラス
●
メソッドの使い方
car1.run(); のように使う。
●
変数の変更の仕方
car1.fuel = 200;のように使う。
- 27.
6. プログラムの慣習
●
インデント
{ }のまとまりがわかりやすいように字下げする。
●
例
void draw(){
for(int i=0; i<10; i++){
if( i > 5 ){
print(i);
}
}
}
●
こうすると括弧の数を間違えたりしにくいし、どこ
までが条件分岐で、どこまでが繰り返しかなどが分
かりやすい。
- 28.
6. プログラムの慣習
●
変数名、函数名は小文字から始める。
●
例
foat fuel;
int add(int _a, int _b){
...
}
●
クラスの名前は大文字から始める
●
例
class Car{
...
}
- 29.
6. プログラムの慣習
●
単語の区切れ目は大文字にして表す
●
例
class SuperCar{
...
}
int posX;
int addNumbers(int _a, int _b){
...
}
●
こうすると単語として読みやすくなる。
- 30.
6. プログラムの慣習
●
函数の引数に_(アンダーバー)をつける
●
例
int add(int _a, int _b){
...
}
●
分かりやすくするために、名前を付けると名前がぶ
つかることがある。
●
そんなとき、こうすると、同じ名前の変数があった
ときに区別することができる。
- 31.
7. まとめ
●
これだけ分かってれば、あとは自分で調べて勉
強できると思います。
●
勉強に役立つサイト
– OpenProcessing(http://www.openprocessing.org/)
●
Processing関連のサイトはProce55ingで検索
するとよく引っかかります。
●
ProcessingのサイトでReferenceに行くと、
どんな函数があるのか調べられます。
- 32.
7. まとめ
●
絵を出すだけでなく、音を出したり、電子工作
と組み合わせたりするために「ライブラリ」と
呼ばれる物もあります。
●
いろいろ組み合わせると楽しい作品が作れると
思います。
●
それでは Enjoy Processing!