java - 用Java实现 'Waterfall'模拟

标签 java opengl visualization

我想实现 this video 的可视化在 Java 中作为经验帮助我理解创建可视化的所有“麻烦”。我在 OpenGL 方面有一些经验,并且非常了解如何处理所涉及的物理问题。但是,如果有人知道任何可以提供帮助的好游戏引擎(或者至少完成创建上述可视化所涉及的一些繁重工作),我将不胜感激。

此外,我注意到链接的视频必须使用许多独立的喷气机才能按照它的方式运行。它可能是使用 C 等较低级别的东西创建的吗?是否可以使用像 Java 这样的高级语言来控制这样的系统?

最佳答案

老实说,如果您想实现“仅此而已”,我认为使用游戏引擎未免太过分了。只需自己实现一个简单的粒子引擎即可。

说真的,这个问题并不难,任何语言都可以。它背后的基本原理与 Steam 风琴或自弹钢琴背后的原理相同。您有一个输入数据,显示要播放的模式是什么,您可以在给定时间内推进它。

下面是我将如何构建基本控制系统。你拍了一张黑白照片。宽度与“发射器”的数量一样宽,长度与图案需要的一样长。您阅读图像并从第一行开始。你走过那条线上的每个像素,如果像素是黑色的,你就会发出一滴水,如果像素是白色的,你就不会。然后,您以给定的间隔(可能是 25 毫秒)移动到下一行并相应地设置发射器。

图像的妙处在于您可以在任何图形程序中简单地绘制它们。要获得当前时间,您需要将时间渲染到内存中的图像缓冲区中,然后将其传递到上面的代码中。 (如果你愿意,你甚至可以获得字体......)

关于java - 用Java实现 'Waterfall'模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7455407/

相关文章:

java.lang.NoClassDefFoundError : Could not initialize class javax. 媒体.jai.JAI

c++ - GLSL 统一缓冲 block 为空

OpenGL Alpha 混合问题,忽略混合(可能)?

c++ - cpp/opengl 中的事件

Neo4J:如何隐藏图形可视化中的特定节点?

Python & Matplotlib : multi-level treemap plot?

visualization - Vega-lite 线标记在远处显示工具提示

java - 不使用 Firebase 云消息传递或任何其他类似服务的 Android 推送通知

java - Struts 2 下载文件为 0 字节

java - 如何多次打印一个数组?