代码之家  ›  专栏  ›  技术社区  ›  Sandro

3D图形渲染库的建议?[关闭]

  •  6
  • Sandro  · 技术社区  · 15 年前

    所以我不确定stackoverflow有多友好这个问题,因为它没有一个快速明确的答案,但现在我们开始…

    我有一个Java程序,生成有向图的数据。现在我需要呈现这个图形。数据需要以三维形式显示,我希望能够定义边所在的平面。(每个边只需要占用一个三维空间平面)。我还需要在图表中导航的能力。因为我知道这种东西很难买,所以我要去买东西。

    到目前为止,我已经研究过(没有特别的顺序):

    • JUNG: 缺乏3D支持
    • Cytoscape: 不知道我能定义多少边缘绘制,还没有看到它的非生物信息学应用。
    • J图表: 我还没有看到任何3D应用程序
    • Perfuse: 看起来很有希望,有人知道其他的吗?
    • Gephi: 文档看起来很稀缺
    • 处理: 这对Java有很好的效果吗?

    我还考虑结合OpenGL+Swing渲染,从多个二维图形创建一个三维图形。

    我也不反对与另一种语言联系的想法。

    有什么想法吗?谢谢您。

    8 回复  |  直到 7 年前
        1
  •  2
  •   stacker    15 年前

    我建议在可视化部分使用Java3D

    要进行图形布局,可以在 JUNG 检查是否可以轻松地扩展到3D。

    JUNG layout demo

        2
  •  1
  •   Binary Nerd    15 年前

    有一些三维图形可视化工具。

    我知道的3D观众有:

    1. UBIGraph - demos 页面上有一些不错的动画。
    2. Wilmascope -OpenSource并写入 贾瓦3D

    既然wilmascope是开源的,如果布局不适合你,你可以扩展它来满足你的需求。然而,用3D绘制图形并不容易。

    你也可以看看 Cuttlefish 在SourceForge上。有一个 video on YouTube 显示正在使用的示例。

        3
  •  0
  •   joejoeson    15 年前

    您可能会考虑使用python。来自python的matplotlib。您可能需要将数据输出为中间格式,并在数据上运行一个python脚本,因为matplotlib具有cpython绑定,但库具有一些很好的图形化和报告功能。

        4
  •  0
  •   George Profenza    15 年前

    我玩过处理和OpenGL last term . 不确定绘制二维平面是否是最佳方法。 但是你可以确定用处理在3D中绘制你的图形点。 如果你想的话。这是一个小程序 openprocessing .

    我们研究了一点信号处理,并使用 Octave GNUPlot 绘制信号 在二维(使用绘图、杆等)和三维(使用网格)中

    octave mesh http://www.network-theory.co.uk/docs/octave3/mesh.png

    我已经搜索了GaveGuTrand,似乎找到了一些方便的链接…

    查看Java链接 GnuPlot Programming Interfaces ,像: this , javaplot , jgnuplot 等等。

    对于一些硬核图形,无论是二维还是三维,gnuplot似乎是一个相当强大的选择。

        5
  •  0
  •   Anycorn    15 年前

    看看Java VTK。VTK是一种复杂的野兽,但非常强大。

        6
  •  0
  •   Alinium    15 年前

    NAViGaTOR 用于修复不同三维平面中的节点。因此,如果将边的相邻节点固定在同一平面中,那么相应的边也将位于该平面中。但是,它不支持有向边-你只会得到你的图的无向表示。

        7
  •  0
  •   Martin Pernollet    14 年前

    我建议你试试 http://code.google.com/p/jzy3d 这将真正帮助你做你想做的事。它是一个Java库,用于快速绘制表面、散射体和3D图元(球、线、点等)。 当做, 马丁

        8
  •  0
  •   Jacob Schoen    12 年前

    VisAD

    VisAD是一个用于交互和协作的Java组件库。 数值数据的可视化和分析。维萨德是一个 “算法开发可视化”的缩写。系统 组合:

    • 使用纯Java平台独立性和支持地理分布之间的数据共享和实时协作 用户。对分布式计算的支持最低 使用Java RMI分布式对象的系统级别。
    • 一种通用的数学数据模型,可以适应几乎任何数字数据,支持不同用户之间的数据共享, 不同的数据来源和不同的科学学科,以及 提供对独立于存储格式的数据的透明访问,以及 位置(即内存、磁盘或远程)。数据模型已经 适应于netcdf、hdf-5、fits、hdf-eos、mcidas、vis5d、gif、jpeg, TIFF、QuickTime、ASCII和许多其他文件格式。
    • 支持交互式三维、数据融合、多数据视图、直接操作、协作和 虚拟现实。显示模型已适应Java3D和 并用于沉浸式虚拟现实显示。
    • 数据分析和计算与可视化集成,支持计算转向和其他复杂的交互模式。
    • 支持两个不同的社区:基于visad创建特定于域的系统的开发人员,以及这些特定于域的系统的用户。VISAD旨在支持多种 用户界面,从简单的数据浏览器小程序到 复杂的应用程序,允许科学家小组 协同开发数据分析算法。
    • 尽可能多地扩展开发人员。