65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.67/5 (3投票s)

2009年1月26日

CPOL

4分钟阅读

viewsIcon

48796

downloadIcon

1330

3D 实时数据可视化

引言

如果您开发算法、调试实时系统、处理大数据或生成科学数据,您都可以利用 NZR。通常,如果您尝试对代码进行插装,插装会降低系统速度并改变其行为。系统监视器应用程序是帮助您了解 NZR API 的一个有趣方式。此应用程序可将您 PC 上的 CPU 使用率和 IP 流量可视化。它还会捕获桌面窗口并将其显示在 PC 的 3D 模型上。四个进程的 CPU 使用率使用 nzrVolume 对象进行显示。颜色和不透明度映射用于突出显示不同的进程。网络上的 IP 流量以两种方式显示。使用 nzrGraph 对象将数据包长度与时间进行图形化显示。IP 源和目标地址被映射为 3D 空间中的点,其中前三个八位字节被映射为 x、y 和 z 位置。第四个八位字节用于为相关的符号和文本着色。此程序显示连接到您 PC 的网络上的每个数据包。

通过将 3D 可视化代码与应用程序代码分离,所有 3D 可视化的复杂性都被封装在 NZR 应用程序中。这只留下一个非常小的服务器库和一个头文件来实现接口。应用程序代码现在非常简洁,开发人员可以专注于应用程序中的更高层级工作。

准备工作

在编译和运行此应用程序之前,您需要下载

  • NZR 2.0,从 这里下载
  • WinPcap 驱动程序(用于 IP 流量嗅探),从 这里下载 

使用代码 

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 日:对文章进行了少量修改
© . All rights reserved.