SlideShare a Scribd company logo
1 of 32
Javaユーザに知ってほしい
Processing入門
JavaDoでしょう #08 (2017/01/15)
自己紹介
@chicken Jr.
社会人2年目のSE
業務はJavaメイン
初LTで緊張しており大変です
今日やること
Processingって?
Processingの作品紹介
Processingでプログラムを書いてみる
Processingのサンプルを見てみる
Processingって?
『オープンソースプロジェクトであり、
かつてはMITメディアラボで開発されていた。
電子アートとビジュアルデザインのための
プログラミング言語であり、統合開発環境で
ある。(Wikipedia)』
作者は Casey ReasとBenjamin Fry
Processingって?
『Java を単純化し、グラフィック機能に特化し
た言語といえる。(Wikipedia)』
Processingは
「Java」で できている
Processingの作品紹介
MSAFluid for processing
https://vimeo.com/groups/processing/videos/3975324
Firewall
https://vimeo.com/54882144
Magnetosphere (iTunes8のビジュアライザプラグイン)
http://hubpages.com/technology/Magnetosphere-music
Processingでプログラムを書いてみる
https://processing.org/のDownloadから入手
最新版は3.2.3(2016/11/7リリース)
対応OS Windows, Linux, Max OS X
Processingでプログラムを書いてみる
「Hello World!!」を表示させよう
Processingでプログラムを書いてみる
「Hello World!!」を表示させよう
void draw() {
println(“Hello World!!");
}
実行結果
Processingでプログラムを書いてみる
「Hello World!!」を表示させよう
void draw() {
println(“Hello World!!");
}
 なぜ複数行でてくるの?
Processingでプログラムを書いてみる
プログラムソースの構成
void setup() {
// セットアップ
}
void draw() {
// 描画処理
}
Processingでプログラムを書いてみる
setup()
プログラムの開始時、一番最初に実行される
1回だけ実行される
draw()
Setup関数のあとに実行される
プログラムを実行している間、繰り返される
Processingでプログラムを書いてみる
「Hello World!!」を表示させよう
void setup() {
noLoop();
}
void draw() {
println(“Hello World!!");
}
Processingでプログラムを書いてみる
「Hello World!!」を表示させよう
void setup() {
noLoop();
}
void draw() {
println(“Hello World!!");
}
実行結果
Processingでプログラムを書いてみる
ディスプレイウィンドウに「Hello World!!」を表示させよう
void setup() {
size(800, 400);
}
void draw() {
textSize(100);
fill(0);
text("Hello World", 0, height/2);
}
実行結果
Processingでプログラムを書いてみる
「Hello World!!」にアンダーラインを引こう
void setup() {
size(800, 400);
}
void draw() {
textSize(100);
fill(0);
text("Hello World", 0, height/2);
rect(0, 200, width, 10);
}
実行結果
Processingでプログラムを書いてみる
マウスクリックイベントを書いてみよう
int r = 0;
int g = 0;
int b = 0;
void setup() {
size(300,300);
}
void draw() {
background(r, g, b);
fill(255);
ellipse(mouseX, mouseY, 20, 20);
}
void mouseClicked(){
r = 0;
g = mouseX;
b = mouseY;
}
実行結果
マウスの現在位置を○で表現しています。
クリック箇所のXY座標を取得して、背景色を変更します。
Processingでプログラムを書いてみる
画像を表示、加工してみる
PImage img;
void setup() {
size(400, 200);
img =
loadImage("icon1007.png");
}
void draw() {
tint(0, 153, 204); // Tint blue
image(img, 0, 0, 200, 200);
noTint();
image(img, 200, 0, 200, 200);
//filter(THRESHOLD);
//filter(INVERT);
}
実行結果
tint関数を使用し、画像全体に指定色を合成します。
Processingでプログラムを書いてみる
画像を表示、加工してみる2
PImage img;
void setup() {
size(400, 200);
img =
loadImage("icon1007.png");
}
void draw() {
tint(0, 153, 204); // Tint blue
image(img, 0, 0, 200, 200);
noTint();
image(img, 200, 0, 200, 200);
filter(THRESHOLD);
//filter(INVERT);
}
実行結果
THRESHOLDフィルタは画像色を2値化(白、黒)します。
Processingでプログラムを書いてみる
画像を表示、加工してみる3
PImage img;
void setup() {
size(400, 200);
img =
loadImage("icon1007.png");
}
void draw() {
//tint(0, 153, 204); // Tint blue
image(img, 0, 0, 200, 200);
//noTint();
image(img, 200, 0, 200, 200);
//filter(THRESHOLD);
filter(INVERT);
}
実行結果
INVERTフィルタは画像色を反転します。
Processingのサンプルを見てみる
グラデーションで描画してみる
サンプル Basic > Color > Radial Gradient を参照
Processingのサンプルを見てみる
3Dオブジェクトを描画してみる
サンプル Basic > Lights > Directional を参照
Processingのサンプルを見てみる
もっとすごいサンプルを鑑賞してみる
→サンプルのDEMOを見る
→公式サイトのExhibition(展示)を見る
https://processing.org/exhibition/
→Processing作品集を見る
https://www.openprocessing.org/
→vimeoを見る
https://vimeo.com/groups/processing
おわりに・・・
業務では役立たないかもしれないけれど、
気が向いたら触ってみませんか?
需要があれば、もっと詳しい資料をつくるかも

More Related Content

What's hot

20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
torutk
 

What's hot (20)

Arachne Unweaved (JP)
Arachne Unweaved (JP)Arachne Unweaved (JP)
Arachne Unweaved (JP)
 
DroidKaigi - Welcome talk
DroidKaigi - Welcome talkDroidKaigi - Welcome talk
DroidKaigi - Welcome talk
 
NDS36 Java7&Java8
NDS36 Java7&Java8NDS36 Java7&Java8
NDS36 Java7&Java8
 
Generating word clouds in python
Generating word clouds in pythonGenerating word clouds in python
Generating word clouds in python
 
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
 
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
 
Rancher select
Rancher selectRancher select
Rancher select
 
Startup jenkins!
Startup jenkins!Startup jenkins!
Startup jenkins!
 
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
渋谷java−あなたのプロジェクトで気軽にjavaをバージョンアップするために必要なこと
 
関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング
 
「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」「GebとSpockではじめるシステムテスト自動化」
「GebとSpockではじめるシステムテスト自動化」
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
Java one 2013 sf 報告会lt
Java one 2013 sf 報告会ltJava one 2013 sf 報告会lt
Java one 2013 sf 報告会lt
 
04 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r00104 コンテナ管理ツール比較 public_r001
04 コンテナ管理ツール比較 public_r001
 
Rails on Dockerとの戦い
Rails on Dockerとの戦いRails on Dockerとの戦い
Rails on Dockerとの戦い
 
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
「開発の現場でも役に立つボトムアップによるデータモデリング活用実例」
 
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
 
邪道Jenkins
邪道Jenkins邪道Jenkins
邪道Jenkins
 
「SenchaユーザーのためのRAD Studio入門」
「SenchaユーザーのためのRAD Studio入門」「SenchaユーザーのためのRAD Studio入門」
「SenchaユーザーのためのRAD Studio入門」
 
DevOpsって何?
DevOpsって何?DevOpsって何?
DevOpsって何?
 

Viewers also liked

naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agile
Naveed Kamran
 
UML and Data Modeling - A Reconciliation
UML and Data Modeling - A ReconciliationUML and Data Modeling - A Reconciliation
UML and Data Modeling - A Reconciliation
dmurph4
 

Viewers also liked (12)

Javaユーザに伝えたいselenide入門
Javaユーザに伝えたいselenide入門Javaユーザに伝えたいselenide入門
Javaユーザに伝えたいselenide入門
 
Infografía: Cuatro Grandes Habilidades Lingüísticas
Infografía: Cuatro Grandes Habilidades Lingüísticas Infografía: Cuatro Grandes Habilidades Lingüísticas
Infografía: Cuatro Grandes Habilidades Lingüísticas
 
naveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agilenaveed-kamran-software-architecture-agile
naveed-kamran-software-architecture-agile
 
Ashford bus 318
Ashford bus 318Ashford bus 318
Ashford bus 318
 
The franchising challenges forecast for international brands analysis
The franchising challenges forecast for international brands analysis The franchising challenges forecast for international brands analysis
The franchising challenges forecast for international brands analysis
 
El desastre de Chernóbyl
El desastre de ChernóbylEl desastre de Chernóbyl
El desastre de Chernóbyl
 
UML and Data Modeling - A Reconciliation
UML and Data Modeling - A ReconciliationUML and Data Modeling - A Reconciliation
UML and Data Modeling - A Reconciliation
 
Parque de Bomberos de Cazalla
Parque de Bomberos de CazallaParque de Bomberos de Cazalla
Parque de Bomberos de Cazalla
 
Meglio un marketing interno o un'agenzia
Meglio un marketing interno o un'agenzia Meglio un marketing interno o un'agenzia
Meglio un marketing interno o un'agenzia
 
CFO Role - riesgos
CFO Role - riesgosCFO Role - riesgos
CFO Role - riesgos
 
Domain-Driven Data
Domain-Driven DataDomain-Driven Data
Domain-Driven Data
 
Literatura trovadoresca
Literatura trovadoresca Literatura trovadoresca
Literatura trovadoresca
 

Similar to Javaユーザに知ってほしい Processing入門

オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
 

Similar to Javaユーザに知ってほしい Processing入門 (20)

サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27サポーターズ勉強会スライド 2018/2/27
サポーターズ勉強会スライド 2018/2/27
 
java-ja TDD 2nd
java-ja TDD 2ndjava-ja TDD 2nd
java-ja TDD 2nd
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
JavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へJavaScriptと共に歩いて行く決意をした君へ
JavaScriptと共に歩いて行く決意をした君へ
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
ゼミ1016
ゼミ1016ゼミ1016
ゼミ1016
 
遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup遅いクエリと向き合う仕組み #CybozuMeetup
遅いクエリと向き合う仕組み #CybozuMeetup
 
Processing.jsでおうちハック shorter version
Processing.jsでおうちハック shorter versionProcessing.jsでおうちハック shorter version
Processing.jsでおうちハック shorter version
 
Why js
Why jsWhy js
Why js
 
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
 
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
5minQues - SWET近況報告
5minQues - SWET近況報告5minQues - SWET近況報告
5minQues - SWET近況報告
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
Javaと小道具
Javaと小道具Javaと小道具
Javaと小道具
 
Scaffold for read and debug java script
Scaffold for read and debug java scriptScaffold for read and debug java script
Scaffold for read and debug java script
 

Recently uploaded

Recently uploaded (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Javaユーザに知ってほしい Processing入門

Editor's Notes

  1. キャセイ・レアス、ベンジャミン・フライ 視覚的なフィードバックが即座に得られるため、初心者がプログラミングを学習するのに適しているともwikipediaに記載 母校、情報大でもこちらのProcessingを使用して画像処理を学ぶ講義があります。
  2. ビジュアルプロトタイプ開発にProcessingを使用 チームラボアイランド teamlab (Unity?メイン) ライゾマティクス 真鍋大度 perfumeのパフォーマンス 公式のexhibitionとかvimeoでチェック https://processing.org/exhibition/ http://www.quayola.com/strata3/ https://vimeo.com/groups/processing/videos/58661899
  3. THRESHOLD :値の2極化 INVERT:色反転
  4. THRESHOLD :値の2極化 INVERT:色反転
  5. THRESHOLD :値の2極化 INVERT:色反転
  6. HSB:色相(Hue)、彩度(Saturation)、明度(BrightnessもしくはValue)を用いて色を指定 ellipseMode(RADIUS):サイズを半径で指定 フレームレート:1秒ごとに処理するフレーム数 アニメ作品や映画製作時、24fps(フレーム/秒) TV 30fps
  7. Translate:描画開始位置を指定
  8. Demoを見てみる