跳转到内容

使用 3D Connexion SDK / 介绍 3D Connexion SDK

来自维基教科书,开放的书籍,为开放的世界

介绍 3D Connexion SDK

[编辑 | 编辑源代码]

SDK 是软件开发工具包,是一堆代码,允许您制作程序,使用公司的产品来做一些事情。

让我们解压缩 3D Connexion 提供的 SDK 中的 VB.ZIP 文件,并将 monitor.sln 文件拖入 Visual Basic Express。您需要通过转换器将其升级到您的 Visual Basic 版本,因此只需一直按忽略、是或下一步,直到它完成。按 F5 试试。您应该看到设备反馈数据的实时读数;哪个按钮被按下,它的旋转是什么,各种不错、有用的东西。

双击 Form1.vb 查看代码。这是 3D Connexion 团队编写的用于将鼠标连接到计算机的极其复杂的代码,以及我们实际上不需要的东西的混合。我们要做的是从这个项目中创建一个模板文件。首先,进入设计视图并选择所有。删除并进入代码视图。删除所有代码并粘贴以下内容

(经罗技公司许可转载)

 Public Class Form1
   Delegate Sub SetMotionTextCallback()
   Delegate Sub SetKeyTextCallback(ByVal keyCode As Integer)
 
Private WithEvents Sensor As TDxInput.Sensor Private WithEvents Keyboard As TDxInput.Keyboard Private WithEvents Device As TDxInput.Device
Public Sub New() Device = New TDxInput.Device Sensor = Device.Sensor Keyboard = Device.Keyboard
SetMotionTexts()
Device.Connect()
End Sub
Private Sub Sensor_SensorInput() Handles Sensor.SensorInput
Me.SetMotionTexts()
End Sub
Private Sub SetMotionTexts()
Dim Style1 As String = "f" Dim translation As TDxInput.Vector3D translation = Sensor.Translation
Dim rotation As TDxInput.AngleAxis rotation = Sensor.Rotation
End Sub

Protected Overrides Sub Finalize() Device.Disconnect() MyBase.Finalize() End Sub
End Class

您需要保存所有这些,方法是按全部保存。现在关闭 Visual Basic。要创建新程序,请创建模板文件夹的副本,并在 Visual Basic 中打开 Monitor.sln 文件。有一些方法可以从头开始创建自己的程序,但是,它会变得很复杂。

因此,让我们看一下代码

首先,他们启动 Form1

 Public Class Form1

不要担心这部分

   Delegate Sub SetMotionTextCallback()
   Delegate Sub SetKeyTextCallback(ByVal keyCode As Integer)
 

在这里,他们添加了 TDx 传感器对象。TDx 传感器是 3D Connexion 鼠标发回的数据。

   Private WithEvents Sensor As TDxInput.Sensor
   Private WithEvents Keyboard As TDxInput.Keyboard
   Private WithEvents Device As TDxInput.Device
 

这将启动信息流

   Public Sub New()
       Device = New TDxInput.Device
       Sensor = Device.Sensor
       Keyboard = Device.Keyboard
 
SetMotionTexts()
Device.Connect()
End Sub

这是一个传感器状态变化的“监听器”

   Private Sub Sensor_SensorInput() Handles Sensor.SensorInput
 
Me.SetMotionTexts()
End Sub

这是一个使用鼠标输入的示例过程

   Private Sub SetMotionTexts()
 
Dim Style1 As String = "f" Dim translation As TDxInput.Vector3D translation = Sensor.Translation
Dim rotation As TDxInput.AngleAxis rotation = Sensor.Rotation
End Sub

当你完成鼠标操作时,它会“注销”

   Protected Overrides Sub Finalize()
       Device.Disconnect()
       MyBase.Finalize()
   End Sub
 
End Class

不要担心它的确切细节。您只需要知道它创建了 7 个变量

Rotation.x: x 轴上的旋转,以精确的小数表示

Rotation.y: y 轴上的旋转,以 0、-1 或 1 表示。必须使用 Rotation.y * rotation.Angle 来计算此值。

Rotation.z: z 轴上的旋转

rotation.angle: 设备从静止位置移动的总角度

translation.x: x 轴上的总平移

translation.y: 猜测

translation.z: 猜测

translation.length: 设备节点从静止位置移动的距离。

华夏公益教科书