silverlightで作るマルチタッチアプリケーション
DESCRIPTION
Silverlightで作るマルチタッチアプリケーション Developers Summit 2011 17-D-3 LT セッション資料 Silverlight でマルチタッチマニピュレーションを実現するために Matrix クラスを利用してみますTRANSCRIPT
Developers Summit 2011
瀬尾 佳隆 技術ひろば.net / MVP for Visual C#
17-D-3
Silverlight で作る
マルチタッチアプリケーション
Developers Summit 2011
自己&コミュニティー紹介
瀬尾 佳隆 (せお よしたか) MVP for Visual C# (Jan 2009 – Dec 2011)
Silverlight, SharePoint あたりが好き ハマりどころも多くて難しいけど
どうでもいい情報としてはミュージカルが大好きです
技術ひろば.net http://hiroba-tech.net/
月1回(主に第3土曜日)に勉強会を開催
モットーは「技術を楽しむ、技術でつながる」
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 より
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 クラスでは指定しない
(アフィン変換行列)
Developers Summit 2011
Matrix クラスを理解する
~行列の復習 (1)
行列の積
Developers Summit 2011
行列の復習 (2)
平行移動
拡大(縮小)
回転
Developers Summit 2011
回転と拡大縮小の実装(1)
行列を順に掛けて回転と拡大を行う
Developers Summit 2011
回転と拡大縮小の実装(2)
演算の際は中心の考慮も忘れずに
Developers Summit 2011
回転と拡大縮小の実装(3)
Developers Summit 2011
まとめ
Matrix クラスを使うと、Silverlight でも
マルチタッチマニピュレーションを実現できます
MSDN Magazine 2010年3月号で詳しく解説
されています http://msdn.microsoft.com/ja-jp/magazine/ee336121.aspx
ちょっとだけ数学の復習が必要かも
追加の説明は、技術ひろば.net 3月の勉強会&ブログで