[原创] Sensortag 【智能风铃】 第四弹 实现风铃的摆动

anqi90   2014-4-30 14:33 楼主
之前建立的风铃模型导入到wpf工程之后,就可以着手实现模型的运动了。


由于建模的时候把各个需要运动的部件的轴心都设置为了实际摆动的中心,在这里只需要直接设置旋转的角度就可以了


以中间的部件为例:


在工程中创建两个lable,代表摆动的x、y两个轴的角度:





然后在部件模型的属性中摆动的x轴角度和y轴角度分别建立数据绑定为刚才撞见的两个lable的值:

                           
                                
                           
                        
                        
                           
                                
                           
                        


现在使用鼠标右键拖动的坐标该变量模拟计算出来的摆动角度
在鼠标移动的事件中检测右键是否按下,若是,则根据移动的坐标距离改变两个lable的值,这样即实现鼠标拖动风铃摆动了
Private Sub MainWindow_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Input.MouseEventArgs) Handles Me.MouseMove
        If right_down = 1 Then
            position = Mouse.GetPosition(Me)
            If position <> start_position Then
                mouse_moved = 1
                tmp_position.X = last_position.X + position.X - start_position.X
                tmp_position.Y = last_position.Y - position.Y + start_position.Y
                If tmp_position.X / 8 < 25 And tmp_position.X / 8 > -25 Then
                    stop_position.X = tmp_position.X
                End If
                If tmp_position.Y / 5 < 25 And tmp_position.Y / 5 > -25 Then
                    stop_position.Y = tmp_position.Y
                End If
                angle_x.Content = stop_position.X / 8
                angle_y.Content = stop_position.Y / 5
                swing_angle = Math.Sqrt(angle_x.Content ^ 2 + angle_y.Content ^ 2)
              
            End If
        End If
    End Sub

当然中间有一些临时试出来的计算参数,是为了让鼠标移动的距离和摆动的距离相符,大家参考一下就好了,不用深究....

ok,下面就是实际操作的视频:





回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复