silverlightで作るマルチタッチアプリケーション

10
Developers Summit 2011 瀬尾 佳隆 技術ひろば.net / MVP for Visual C# 17-D-3 Silverlight で作る マルチタッチアプリケーション

Upload: yoshitaka-seo

Post on 16-Jan-2015

3.172 views

Category:

Technology


6 download

DESCRIPTION

Silverlightで作るマルチタッチアプリケーション Developers Summit 2011 17-D-3 LT セッション資料 Silverlight でマルチタッチマニピュレーションを実現するために Matrix クラスを利用してみます

TRANSCRIPT

Page 1: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

瀬尾 佳隆 技術ひろば.net / MVP for Visual C#

17-D-3

Silverlight で作る

マルチタッチアプリケーション

Page 2: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

自己&コミュニティー紹介

瀬尾 佳隆 (せお よしたか) MVP for Visual C# (Jan 2009 – Dec 2011)

Silverlight, SharePoint あたりが好き ハマりどころも多くて難しいけど

どうでもいい情報としてはミュージカルが大好きです

技術ひろば.net http://hiroba-tech.net/

月1回(主に第3土曜日)に勉強会を開催

モットーは「技術を楽しむ、技術でつながる」

Page 3: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

Silverlight は

マルチタッチがちょっとだけ苦手

Silverlight ではマルチタッチサポートが

ちょっと少なめ

タッチポイントは取れるが、

マニピュレーションの API は持っていない

WM_TOUCH WM_GESTURE Manipulation

& Inertia

Win 32 〇 ◎ 〇

Silverlight 3 〇 × ×

WPF 4 〇 〇

http://msdn.microsoft.com/ja-jp/ff604678.aspx より

Page 4: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

そこで・・・Matrix クラス

System.Windows.Media.Matrix クラス public Matrix(double m11, double m12,double m21,

double m22, double offsetX, double offsetY)

これを UIElement.RenderTransform.

MatrixTransform に代入します

m11, m22 ・・・ X, Y 方向の拡大率

m12, m21 ・・・ 傾斜

※第3列は (0, 0, 1) 固定なので、

Matrix クラスでは指定しない

(アフィン変換行列)

Page 5: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

Matrix クラスを理解する

~行列の復習 (1)

行列の積

Page 6: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

行列の復習 (2)

平行移動

拡大(縮小)

回転

Page 7: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

回転と拡大縮小の実装(1)

行列を順に掛けて回転と拡大を行う

Page 8: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

回転と拡大縮小の実装(2)

演算の際は中心の考慮も忘れずに

Page 9: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

回転と拡大縮小の実装(3)

Page 10: Silverlightで作るマルチタッチアプリケーション

Developers Summit 2011

まとめ

Matrix クラスを使うと、Silverlight でも

マルチタッチマニピュレーションを実現できます

MSDN Magazine 2010年3月号で詳しく解説

されています http://msdn.microsoft.com/ja-jp/magazine/ee336121.aspx

ちょっとだけ数学の復習が必要かも

追加の説明は、技術ひろば.net 3月の勉強会&ブログで