ここで、Kinect マウス プロジェクトに関して「Evil Closet Monkey」が回答した質問があります。コードを C# から VB.Net に変換しました。コードは次のとおりです。
Private Sub TrackHandMovement(skeleton As Skeleton)
Dim leftHand As Joint = skeleton.Joints(JointType.HandLeft)
Dim rightHand As Joint = skeleton.Joints(JointType.HandRight)
Dim leftShoulder As Joint = skeleton.Joints(JointType.ShoulderLeft)
Dim rightShoulder As Joint = skeleton.Joints(JointType.ShoulderRight)
Dim rightHip As Joint = skeleton.Joints(JointType.HipRight)
' the right hand joint is being tracked
If rightHand.TrackingState = JointTrackingState.Tracked Then
' the hand is sufficiently in front of the shoulder
If rightShoulder.Position.Z - rightHand.Position.Z > 0.4 Then
Dim xScaled As Double = (rightHand.Position.X - leftShoulder.Position.X) / ((rightShoulder.Position.X - leftShoulder.Position.X) * 2) * SystemParameters.PrimaryScreenWidth
Dim yScaled As Double = (rightHand.Position.Y - rightShoulder.Position.Y) / (rightHip.Position.Y - rightShoulder.Position.Y) * SystemParameters.PrimaryScreenHeight
' the hand has moved enough to update screen position (jitter control / smoothing)
If Math.Abs(rightHand.Position.X - xPrevious) > MoveThreshold OrElse Math.Abs(rightHand.Position.Y - yPrevious) > MoveThreshold Then
RightHandX = xScaled
RightHandY = yScaled
xPrevious = rightHand.Position.X
yPrevious = rightHand.Position.Y
' reset the tracking timer
trackingTimerCounter = 10
End If
End If
End If
End Sub
私はすでにMicrosoft.Kinectをインポートしました
今、私はこれらのエラーを示しています:
「xPrevious」は宣言されていません。保護レベルにより、アクセスできない場合があります。「MoveThreshold」が宣言されていません。保護レベルにより、アクセスできない場合があります。「yPrevious」は宣言されていません。保護レベルにより、アクセスできない場合があります。「MoveThreshold」が宣言されていません。保護レベルにより、アクセスできない場合があります。「RightHandX」は宣言されていません。保護レベルにより、アクセスできない場合があります。「RightHandY」は宣言されていません。保護レベルにより、アクセスできない場合があります。「xPrevious」は宣言されていません。保護レベルにより、アクセスできない場合があります。「yPrevious」は宣言されていません。保護レベルにより、アクセスできない場合があります。「trackingTimerCounter」は宣言されていません。保護レベルにより、アクセスできない場合があります。
私は彼らが宣言されていないことを知っており、本当に何をすべきかわかりません.誰かが私を助けてくれますか?
無知でごめんなさい