選択した画像を指の動きに合わせて回転させるLeap Motionプログラムを作る
2013年11月27日(水)
CircleModel.vbのプログラム・コード
リスト7(ToraModel.vb)
・・・・コード略・・・・ Public Class ToraModel Implements INotifyPropertyChanged ' メンバー変数の宣言 Private no As Integer = 0 Private ctlr As Controller Private listener As LeapListener ' Newメソッド内で、AddHandlerステートメントに、listenerオブジェクトのLeapCircle ' イベントに、CircleActionベントハンドラ—を追加する。 Public Sub New() ・・・コード略・・・ AddHandler listener.LeapCircle, AddressOf CircleAction End Sub ・・・・コード略・・・・
プロパティの宣言
ImageAngleとImageAngle2プロパティを定義します(リスト8)。
リスト8 (CircleModel.vb内のプロパティの宣言)
Private myImageAngle As Integer Public Property ImageAngle As Integer Get Return myImageAngle End Get Set(value As Integer) myImageAngle = value OnPropertyChanged("ImageAngle") End Set End Property Private myImageAngle2 As Integer Public Property ImageAngle2 As Integer Get Return myImageAngle2 End Get Set(value As Integer) myImageAngle2 = value OnPropertyChanged("ImageAngle2") End Set End Property
CircleActionメソッドの処理
具体的なコードはリスト9のようになります。
リスト9 モジュール変数Indexの値で条件分岐を行う(CircleActionメソッド)
Private Sub CircleAction(ByVal sd As CircleEnum) Select Case sd Case CircleEnum.Circle Select Case Index Case 1 ImageAngle = no no += 10 ' モジュール変数Indexが1の場合はメンバー変noの値が10ずつ増加し、ImageAngleの値に指定する Exit Select Case 2 ImageAngle2 = no no += 10 ' モジュール変数Indexが1の場合はメンバー変noの値が10ずつ増加し、ImageAngle2の値に指定する Exit Select Case Else Exit Sub End Select End Select End Sub
MainWindow.xaml内に[CircleModel]を取り込む。
まず名前空間として「xmlns:local="clr-namespace:RecognizeFingerTypeTouch"」を定義します。
次に
リスト10 「CircleModel」を取り込んだMainWindow.xaml
<Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc=http://schemas.openxmlformats.org/markup-compatibility/2006 mc:Ignorable="d" xmlns:local="clr-namespace:RecognizeFingerTypeTouch" Title="MainWindow" Height="500" Width="1000"> <Window.DataContext> <local:CircleModel/> </Window.DataContext> <Canvas> <Image x:Name="Image1" HorizontalAlignment="Left" Height="240" VerticalAlignment="Top" Width="320" Source="Images/林_01.png" Canvas.Left="140" Canvas.Top="111"> <Image.RenderTransform> <RotateTransform Angle="{Binding ImageAngle}" CenterX="160" CenterY="120"/> </Image.RenderTransform> </Image> <Image x:Name="Image2" HorizontalAlignment="Left" Height="240" VerticalAlignment="Top" Width="320" Source="Images/林_03.png" Canvas.Left="522" Canvas.Top="111"> <Image.RenderTransform> <RotateTransform Angle="{Binding ImageAngle2}" CenterX="160" CenterY="120"/> </Image.RenderTransform> </Image> <InkPresenter Name="paintCanvas"/> </Canvas> </Window>
※注意
今回紹介したサンプルコードを動かす際には、「LeapCSharp.NET4.0.dll」や「LeapCSharp.dll」、「Leap.dll」を読者自身のフォルダ内にあるDLLファイルに指定し直さなければ動かない可能性があるので、動かない場合は再指定してください。
選択した画像を指の動きに合わせて回転させるLeap Motionプログラム
『新世代モーションコントローラー Leap Motion -Visual Basicによる実践プログラミング-』 第7回の解説動画です。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。
全文検索エンジンによるおすすめ記事
- 張子の虎をキー・タップすると頭が上下に動くLeap Motionプログラムを作る
- 手の動きに合わせて画面上のキャラクターを操作するLeap Motionプログラムを作る
- Leap Motionのスクリーン・タップを使った音声の再生と画像の表示
- マウス・カーソルで指定した画像の一部を拡大表示するLeap Motionプログラム
- 画面上の図形を5本の指で操作する基本的なLeap Motionプログラムを作る
- Leap Motionで画像のトリミングと保存を行うためのサンプルプログラムを作る
- 写真を突っついて一覧から削除、並び替えするLeap Motionプログラムを作る
- 画面に並んだ写真が指の動きに反応して回転するLeap Motionプログラムを作る
- 好きな写真を指で選んで順番に拡大表示するLeap Motionプログラムを作る
- Kinect v2で実現する打楽器のバーチャル演奏