SlideShare a Scribd company logo
1 of 29
Download to read offline
WinRT のマルチタッチ
    マニピュレーション


瀬尾佳隆 (@seosoft)
Microsoft MVP for Visual C#


                              技術ひろば.net 勉強会 2012年10月
自己紹介
瀬尾 佳隆 (せお よしたか)
 MVP for Visual C# (Jan 2009 – Dec 2012)
 マルチタッチ好き
   Silverlight でも力技の “マルチタッチ” ネタやりました
    (決して詳しいわけではないんですが :-P)


 ブログ・・・http://yseosoft.wordpress.com/
 Twitter ・・・@seosoft
 劇団四季とディズニーリゾートと AKB48 が好き
アジェンダ
タッチで描画
指とマウスとの違い(サイズ以外で)
マルチタッチでオブジェクト操作
まとめ
本日の結論
WinRT のマルチタッチマニピュレーションは
 とっても簡単
 ほぼ定型的なコードで実現できます
 深追いはしないほうがいいと思います
  線形代数が好き!ならば止めませんが :-P
タッチで描画
ポインティングデバイスの位置づけ
WinRT
  マウスは “ポインティングデバイスの一つ”
   という位置づけ
  デバイス種類はイベント引数で判別できます
デスクトップ / Silverlight
  “タッチも使えます” という位置づけ
    タッチイベントは自動的にマウスイベントに昇格
  専用のタッチイベント (WPF) や タッチクラス (SL)
PointerXXX イベント
タッチもマウスも PointerXXX イベント
 MouseXXX はありません
 Up / Down ではなく
  Pressed / Released
 Pointer. PointerDeviceType
  で取得できます
ポインター判別(どの指のイベント?)
どのポインター(=指)のイベントなのかは
 PointerId で識別できます
 Pressed から Released まで同じ ID (uint 型) で
  イベント発行されます
 Dictionary で管理するといいでしょう
シングル/マルチタッチの判別
e.Cumulative.Scale == 1.0
 ならばシングルタッチ、
 そうでなければマルチタッチ
タッチ描画の例 (1/2)
タッチ描画の例 (2/2)
指とマウスとの違い(サイズ以外にも)
指先は “変形” する
指とマウスとの違いは、領域のサイズだけ
 ではありません
 スクリーンとの摩擦で、指先は “変形” します
 滑らかに移動したつもりでも、ギザギザ
InkManager でベジェ曲線に変換
ベジェ曲線に変換すれば滑らかな曲線に
 InkManager を使えば簡単に
  BezierSegment (ベジェ曲線の要素) が作れます
 ただしリアルタイムに描画するのはできません
 変換した線は PoiterReleased のタイミングで描画
ベジェ曲線への変換の例 (1/3)
ベジェ曲線への変換の例 (2/3)
ベジェ曲線への変換の例 (3/3)




 InkStrokeRenderingSegment を BezierSegment に変換
マルチタッチでオブジェクト操作
WinRT ではオブジェクト操作が簡単
オブジェクトを移動、拡大・縮小、回転
 ManipulationDelta イベント
   前回のイベントからの Delta 値が得られます
   Delta 値 = 移動、拡大率、回転角の値
 CompositeTransform クラス
   座標変換はメソッドではなくてプロパティで指定
 オブジェクトの RenderTransform プロパティ
初期化コードは定型的
オブジェクトの移動
X方向、Y方向の移動量を
 CompositeTransform.TranslateX / Y に代入
  前回の Delta イベントからの移動量は
   e.Delta.Translate に入っています
  タッチ開始後の変化総量は
   e.Cumulative に入っています
オブジェクトの拡大・縮小
X方向、Y方向の拡大率を
 CompositeTransform.ScaleX / Y に代入
  X方向、Y方向それぞれに指定します
中心点(原点)の指定が大事
オブジェクトの回転
回転角を
 CompositeTransform.Rotation に代入
これも原点(中心点)の指定が大事
中心点は大事


       中心




 見た目に似ていても、
 どこを中心にするかで座標変換は異なる
移動、拡大、回転の組み合わせ
何も考えずに CompositeTransform の
 それぞれのプロパティに値を代入するだけ
 座標変換は任意の座標変換の組み合わせ
   東に 0.5m、北に 1m、東に 0.5m 進むのと
    北東に 1.4m 進むのとは結果は同じ
ちゃんとした議論をしたい方は線形代数の
 参考書をどうぞ
まとめと参考
ちゃんとした議論をしたい方のために
はい、どうぞ!




       http://bit.ly/SLTouch2
本日の結論
WinRT のマルチタッチマニピュレーションは
 とっても簡単
 ほぼ定型的なコードで実現できます
 深追いはしないほうがいいと思います
  線形代数が好き!ならば止めませんが :-P
参考
MSDN:ストアアプリドキュメント
 クイック スタート: タッチ入力
  http://msdn.microsoft.com/ja-
   jp/library/windows/apps/xaml/hh465387.aspx


瀬尾の過去のセッション資料
 Silverlight で作るマルチタッチアプリケーション
  http://bit.ly/SLTouch
  http://bit.ly/SLTouch2

More Related Content

More from Yoshitaka Seo

Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Yoshitaka Seo
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代Yoshitaka Seo
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionYoshitaka Seo
 
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリYoshitaka Seo
 
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Yoshitaka Seo
 
BIerのためのAI入門
BIerのためのAI入門BIerのためのAI入門
BIerのためのAI入門Yoshitaka Seo
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析Yoshitaka Seo
 
チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理Yoshitaka Seo
 
Custom Visionを活用するためのTips
Custom Visionを活用するためのTipsCustom Visionを活用するためのTips
Custom Visionを活用するためのTipsYoshitaka Seo
 
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようMachine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようYoshitaka Seo
 
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいYoshitaka Seo
 
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介VS Code Tools for AI の紹介
VS Code Tools for AI の紹介Yoshitaka Seo
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUISYoshitaka Seo
 
PowerApps アプリ開発入門
PowerApps アプリ開発入門PowerApps アプリ開発入門
PowerApps アプリ開発入門Yoshitaka Seo
 
Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Yoshitaka Seo
 
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方Yoshitaka Seo
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph APIYoshitaka Seo
 
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化Yoshitaka Seo
 

More from Yoshitaka Seo (20)

Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類Custom Visionで仏像を画像分類
Custom Visionで仏像を画像分類
 
誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代誰もが AI を使う時代、作る時代
誰もが AI を使う時代、作る時代
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
API ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリAPI ペタペタしただけのお手軽 感情分析アプリ
API ペタペタしただけのお手軽 感情分析アプリ
 
Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)Machine Learning studio で構造化データから予測分析 (LT版)
Machine Learning studio で構造化データから予測分析 (LT版)
 
BIerのためのAI入門
BIerのためのAI入門BIerのためのAI入門
BIerのためのAI入門
 
構造化データをツールで簡単に分析
構造化データをツールで簡単に分析構造化データをツールで簡単に分析
構造化データをツールで簡単に分析
 
チャットボットの自然言語処理
チャットボットの自然言語処理チャットボットの自然言語処理
チャットボットの自然言語処理
 
Custom Visionを活用するためのTips
Custom Visionを活用するためのTipsCustom Visionを活用するためのTips
Custom Visionを活用するためのTips
 
Machine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみようMachine Learning Serviceを使ってみよう
Machine Learning Serviceを使ってみよう
 
Bot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごいBot Framework Emulator はこんなにすごい
Bot Framework Emulator はこんなにすごい
 
VS Code Tools for AI の紹介
VS Code Tools for AI の紹介VS Code Tools for AI の紹介
VS Code Tools for AI の紹介
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
QnA Maker 逆入門
QnA Maker 逆入門QnA Maker 逆入門
QnA Maker 逆入門
 
PowerApps アプリ開発入門
PowerApps アプリ開発入門PowerApps アプリ開発入門
PowerApps アプリ開発入門
 
Bot Framework 最新情報 2018
Bot Framework 最新情報 2018Bot Framework 最新情報 2018
Bot Framework 最新情報 2018
 
Bot Service 概要
Bot Service 概要Bot Service 概要
Bot Service 概要
 
Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方Azure Machine Leaning Workbench の使い方
Azure Machine Leaning Workbench の使い方
 
Skype for Business + Bot + Graph API
Skype for Business + Bot + Graph APISkype for Business + Bot + Graph API
Skype for Business + Bot + Graph API
 
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
IoT キットハンズオン解説 (Azure ML Studio 編) Part4 グループ化
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (12)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

WinRT のマルチタッチマニピュレーション