使用 NZR 进行 3D 实时数据可视化:系统监视器应用程序






3.67/5 (3投票s)
3D 实时数据可视化

引言
如果您开发算法、调试实时系统、处理大数据或生成科学数据,您都可以利用 NZR。通常,如果您尝试对代码进行插装,插装会降低系统速度并改变其行为。系统监视器应用程序是帮助您了解 NZR API 的一个有趣方式。此应用程序可将您 PC 上的 CPU 使用率和 IP 流量可视化。它还会捕获桌面窗口并将其显示在 PC 的 3D 模型上。四个进程的 CPU 使用率使用 nzrVolume
对象进行显示。颜色和不透明度映射用于突出显示不同的进程。网络上的 IP 流量以两种方式显示。使用 nzrGraph
对象将数据包长度与时间进行图形化显示。IP 源和目标地址被映射为 3D 空间中的点,其中前三个八位字节被映射为 x、y 和 z 位置。第四个八位字节用于为相关的符号和文本着色。此程序显示连接到您 PC 的网络上的每个数据包。
通过将 3D 可视化代码与应用程序代码分离,所有 3D 可视化的复杂性都被封装在 NZR 应用程序中。这只留下一个非常小的服务器库和一个头文件来实现接口。应用程序代码现在非常简洁,开发人员可以专注于应用程序中的更高层级工作。
准备工作
在编译和运行此应用程序之前,您需要下载
使用代码
NZR 是一个 Windows 应用程序,它向其他 Windows 应用程序公开一个 3D 空间。一个 C++ 库及其关联的应用程序编程接口 (API) 提供了一个简单的接口,用于在 NZR 的空间中放置各种对象。这些对象包括:
nzrDisplay
:此对象允许控制可渲染对象的显示属性。这些属性包括位置、颜色、比例、不透明度、光照模型和方向。
可显示对象
每个可显示对象都有两个动词,允许将其插入和移除 NZR 3D 空间。它们是“place”和“remove”。
nzrText
:用于显示文本nzrImage
:用于显示图像或其他二维数据nzrPoints
:用于显示点nzrGraphs
:用于显示一维数据nzrVolume
:用于显示三维数据nzrSphere
:用于显示球体nzrPolyline
:用于在三维空间中显示任意形状的线nzrOutline
:用于显示三维轮廓nzrFile
:用于将 JPEG 或 3ds 文件插入 NZR 空间
支持对象
nzrLocalServer
:每个应用程序都需要实例化此对象。它将数据从服务器应用程序移到 NZR。NZR 被视为可视化客户端,而 nzr 应用程序被视为数据服务器。服务器将数据推送到客户端。nzrLocalServer
有两个有用的成员函数。第一个是“clearAll()
”,它清除 NZR 空间中的所有对象。第二个是“render()
”,它使所有已放置的对象在 NZR 空间中可见。nzrCamera
:此对象用于设置 NZR 空间中的视点。可以通过设置视点,然后从 scDoc 窗口中的对话框中读取相机值来交互式地确定最佳值。nzrBackground
:用于设置背景颜色。nzrLight
:用于设置场景中的灯光。可以选择颜色、强度、焦点和位置。有三种类型的灯光可用,即前灯、场景灯和相机灯。
代码模式
使用 nzr 对象的流程如下:
- 实例化对象并将其与
nzrLocalServer
对象连接。 - 使用
nzrDisplay
对象设置显示属性。 - 设置对象特定的属性。
- 使用每个对象关联的 place 函数将其放置在 NZR™s 3D 空间中。
- 在放置完所有对象后,调用与服务器关联的
render
函数。
额外帮助
代码注释非常详细。在 SoftServ™s (www.softserv-intl.us) 网站上,还有许多关于可视化单个对象的教程,这些教程应该有助于理解和试验 API。
注意:请确保您已下载 NZR 和 WinPcap 驱动程序。在运行系统监视器应用程序之前,必须确保 NZR 正在运行并且打开了一个 sc Doc。要打开 sc Doc,只需打开一个新文件。系统会提示您选择文档类型。选择 sc 文档类型,一个窗口将打开,其中大部分是黑色的。您也可以通过在 NZR 的控制台中键入“new sc”来打开 sc Doc。一次只能打开一个 sc Doc。如果能有网络流量运行也会有帮助,因为数据包嗅探器调用是一个阻塞调用。代码故意保持简单,以突出可视化方面。
历史
- 2009 年 1 月 26 日:初始发布
- 2009 年 2 月 2 日:对文章进行了少量修改