我已经阅读了很多关于 openFrameworks 和 Processing 的内容,但除了一个在 C++ 中,另一个在 Java 中之外,我仍然无法区分。有人能告诉我究竟是什么吗?
1 回答
您是对的,一个是 C++,另一个是 Java,这些差异适用于这些框架,因此取决于您的偏好/项目范围来决定哪一个最适合您。
处理:_
- 您获得了一个最小的 IDE,但可以轻松使用 Eclipse或其他 Java IDE。
- 你得到内存管理(垃圾收集)
- 您可以在线发布小程序(通过 Java Applet 或使用带有processingjs或p5js的 Canvas 2D 的“精简”javascript 端口)或 Linux/OSX/Windows 的桌面应用程序(通过 Java 运行时)。请注意,处理 1.5.1 之后的版本不再导出小程序。这仍然可以通过命令行或使用 eclipse 来完成。
- 您可以使用 iProcessing 或更快的 P5Nitro 以及最近在 Raspberry PI 上发布到Android和(使用3rd方工具)到 iPhone
- 您可以获得近 200 个库来扩展其功能。
- 您得到了论坛、大量书籍和在线“游乐场”(如OpenProcessing、SketchPatch、hascanvas或SketchPad)的支持。
使用OpenFrameworks:
- 您选择您的 IDE(OSX 上的 XCode、Code::Blocks、VC++)
- 您可以管理自己的内存(malloc、指针和所有这些乐趣),但对于现代 C++,这不是必需的。
- 您可以将项目作为本机应用程序发布(无需运行时)
您目前无法轻松在线发布,但这可能会在未来发生变化(请参阅Arturo Castro 的 of-emscripten进度)您可以使用emscripten在线发布。- 您可以发布到iPhone,从OF 007到Android,从 OF 0.8.0 到 armv6 和 armv7 设备,例如Raspberry PI或Pandaboard
- 您可以获得超过 2000个插件(并非全部都维护)来扩展其功能。
- 您得到了非常活跃和有用的论坛的支持,并且可以在这本在线书籍或一两本纸质书籍中阅读有关它的信息。
这些是现在想到的一些事情,可能还有更多。
就个人而言,我发现在 Processing 中编写真正基本的一次性原型更容易。对于速度不是主要决策因素的情况,Processing 做得很好,但在其他情况下,我会将 Processing 原型移植到 openFrameworks (大部分时间很容易做到)。
一个例子是涉及音频的应用程序,无论是分析还是合成。根据复杂性,Java 垃圾收集器会在您最不期望的时候进行扫描,并在您需要响应时引起烦恼。
简而言之,两者都非常酷,但openFrameworks更快。不过,您可以通过自己管理内存来为这种速度付出代价。
在线部署方面,确实取决于项目:如果是一个简单的项目,可能 p5.js 在与其他 js 库的集成方面可能是最简单的。oF 导出对于手动移植到 JavaScript 需要很长时间的大型复杂代码很方便,但请记住 Emscripten 项目将很大(例如 17.5MB opencvExample
)(因此对蜂窝不友好),您仍然需要如果您需要从网页调用 oF 应用程序功能,请添加您自己的JS -> C++绑定。
此外,如果您对 C++ 感兴趣,您可能还想看看libcinder或Polycode。
高温高压