SlideShare uma empresa Scribd logo
1 de 40
MPS Setagaya 第6回 (2015/09/27) ミーティング
JavaScript でパックマン! 第3回
金子純也
Morning Project Samurai 代表
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
今日の目標
JS のパスについてさらに理解する!
JS でパックマンを動かす準備!

(関数の理解)
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
前回描いたパックマン
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
arc()
arc(中心x, 中心y, 半径, 開始角度, 終了角度, 反時計回り)
* 開始角度、終了角度はラジアンで指定

(360度 = 2 * Math.PI ラジアン)
ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, true);
ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, false);
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
arc を使ったパックマンの描画
• ヒント1

白い扇形を赤い丸に重ねてやればいい!!
• ヒント2

扇形はどうやって作ればいい??
+
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
var cv = document.getElementById(‘pac-man');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fill();
ctx.strokeStyle="#FFFFFF";
ctx.fillStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.fill();
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
var cv = document.getElementById(‘pac-man');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fill();
ctx.strokeStyle="#FFFFFF";
ctx.fillStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.fill();
赤い円を描画
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
var cv = document.getElementById(‘pac-man');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fill();
ctx.strokeStyle="#FFFFFF";
ctx.fillStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.fill();
口を描画
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
var cv = document.getElementById(‘pac-man');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.fill();
ctx.strokeStyle="#FFFFFF";
ctx.fillStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.fill();
Pathってなに?
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスの例
1
2
3
4
5
6
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
ctx.beginPath()
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスの例
1
2
3
4
5
6
ctx.beginPath()
ctx.arc()
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスの例
1
2
3
4
5
6
ctx.beginPath()
ctx.arc()
ctx.linTo()
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスの例
1
2
3
4
5
6
ctx.beginPath()
ctx.arc()
ctx.linTo()
.
.
.
ctx.linTo()
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
stroke()
1
2
3
4
5
6
ctx.beginPath()
ctx.arc()
ctx.linTo()
.
.
.
ctx.linTo()
ctx.stroke()
実際に線が描かれる
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスと色塗りの関係
ctx.beginPath()
ctx.arc()
ctx.linTo()
.
.
.
ctx.linTo()
ctx.fill()
パスに囲まれた部分が

塗りつぶされる MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスと色塗りの関係
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パスと色塗りの関係
Q. 囲まれてるから?
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
この場合は?
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
非ゼロワインディングルール
-1
1
1
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
0
1
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
パックマンを非ワインディング
ルールを考慮して書いてみよう!
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 30 * 

Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI / 180), 

100 + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
パックマンを何度も何度も描くこと!
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
アニメーションに必要なこと
パックマンを何度も何度も描くこと!
何度でも気軽にパックマンを
かけないと困る!
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
「パックマンを描く」というJSの命令を
新たにブラウザに教えてやる!
(関数を定義する)
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
関数
複数の命令をセットにして名前をつけたもの

(必要があれば、入力と出力を持つ)
例: パックマンを描く関数
パックマンを描くのに必要な命令をまとめたもの
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
関数の例
function drawPacman(ctx) {
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 

30 * Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI / 180), 

100 + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
}
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
下記関数を<script>の直下に
書いて定義してみよう!
function drawPacman(ctx) {
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 

30 * Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI / 180), 

100 + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
}
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
関数の例
function drawPacman(ctx) {
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 

30 * Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI / 180), 

100 + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
}
関数の名前
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
関数の例
function drawPacman(ctx) {
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 

30 * Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI / 180), 

100 + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
}
関数への入力
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
使い方
<script>
function drawPacman(ctx) {
…
}
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
drawPacman(ctx);
</script>
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
関数を改良してみよう
function drawPacman(ctx, cx, cy) {
ctx.strokeStyle="#FF0000";
ctx.fillStyle="#FF0000";
ctx.beginPath();
ctx.arc(cx, cy, 50, 

30 * Math.PI / 180, 330 * Math.PI / 180);
ctx.lineTo(cx, cy);
ctx.lineTo(cx + 50 * Math.cos(30 * Math.PI / 180), 

cy + 50 * Math.sin(30 * Math.PI / 180));
ctx.fill();
}
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
改良した関数を使って
複数のPacman を描いてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
drawPacman(ctx, 50, 50);
drawPacman(ctx, 240, 50);
drawPacman(ctx, 400, 50);
*注意) canvas の width を 500 に変更!
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko
次回
• 今度こそ、パックマンを動かす!
• キーボードからの入力を処理する!
MPS Setagaya 第6回 (2015/09/27) ミーティング (c) Junya Kaneko

Mais conteúdo relacionado

Mais procurados

論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回Noritada Shimizu
 
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスターUnity Technologies Japan K.K.
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計UnityTechnologiesJapan002
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスターUnity Technologies Japan K.K.
 

Mais procurados (11)

論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回論理指向とプログラミング2010年度秋学期第9回
論理指向とプログラミング2010年度秋学期第9回
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
 
Tsukuba
TsukubaTsukuba
Tsukuba
 
ggplot2 110129
ggplot2 110129ggplot2 110129
ggplot2 110129
 
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
 
CG2013 02
CG2013 02CG2013 02
CG2013 02
 
CG2013 07
CG2013 07CG2013 07
CG2013 07
 
CG2013 05
CG2013 05CG2013 05
CG2013 05
 
CG2013 03
CG2013 03CG2013 03
CG2013 03
 

Mais de Project Samurai

数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6Project Samurai
 
Make your Artificial Intelligence
Make your Artificial IntelligenceMake your Artificial Intelligence
Make your Artificial IntelligenceProject Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1Project Samurai
 
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -Project Samurai
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Project Samurai
 
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -Project Samurai
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Project Samurai
 
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Project Samurai
 
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Project Samurai
 

Mais de Project Samurai (20)

数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
 
Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
 
Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
 
Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
 
Mpsy20160423
Mpsy20160423Mpsy20160423
Mpsy20160423
 
Make your Artificial Intelligence
Make your Artificial IntelligenceMake your Artificial Intelligence
Make your Artificial Intelligence
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
 
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!
 
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
 
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
Pythonで画像処理をやってみよう!第6回 - Scale-space 第3回 -
 
Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
 

JavaScript でパックマン!第3回