---
# System prepended metadata

title: 2020Web基礎 / p5.js

---

# 2020Web基礎 / p5.js

2020-07-06
杉本達應

#### Canvas要素

p5.jsは、Canvas要素に描画している
```
<canvas></canvas>
```

#### Canvas要素の特徴

- 2D/3DグラフィックをJavaScriptで描ける
- ビットマップ画像（ピクセル単位の操作ができる）
- グラフィック要素が増えても軽い（SVGと比べて）
- ゲームアプリに使われている

#### p5.jsの使いどころ

1. グラフィック／アニメーションを描く
画像ファイルの代わりに
2. インタラクティブなグラフィック
マウスの動き、キー入力、ボタンなど
3. データ可視化
データから表やチャートを作る

#### サンプル

- [背景](https://codepen.io/sugi2000/full/MWKrOpV)
Canvasを背面にすることで、インタラクティブな背景が作れます。
- [テキスト入力](https://codepen.io/sugi2000/full/PoZQOoY)
ユーザのテキスト入力を反映させたグラフィックを作成します。
- [p5.js Web Editor | COVID-19 Tokyo](https://editor.p5js.org/sugi2000/sketches/ICAfqeuqp)
新型コロナウイルス感染症の患者データからチャートやリストを作成します。

#### 参考資料

- [君は使い分けられるか？CSS/SVG/Canvasのビジュアル表現でできること・できないこと - ICS MEDIA](https://ics.media/entry/200520/)
CSS/SVG/Canvasのそれぞれの特徴を解説
- [Generative Design with p5.js［p5.js版ジェネラティブデザイン］ ―ウェブでのクリエイティブ・コーディング](http://www.bnn.co.jp/support/generativedesign_p5js/)
書籍のサンプルコード
- [Code! Programming with p5.js - YouTube](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA)
p5.jsチュートリアルの動画
- [東京の夏は着実に｢暑く･長く｣なっている](https://toyokeizai.net/sp/visual/tko/temperature/)
140年間の日別平均気温でヒートマップを作成
- [人と情報のエコシステム - 社会技術研究開発センター](https://www.jst.go.jp/ristex/hite/index.html)
p5.jsでも作れそうなインタラクティブなアニメーション
- [HACK The Nikkei](https://hack.nikkei.com/)
以前はp5.jsを使っていたが現在は変わった

