45

私はopenFrameworksとProcessingについて多くのことを読んできましたが、C++とJavaの違い以外はまだ区別できません。誰かが正確に何のためのものか教えてもらえますか?

4

1 に答える 1

85

1 つは C++ で、もう 1 つは Java です。これらの違いはこれらのフレームワークに適用されるため、どちらが最適かを判断するのは好みやプロジェクトの範囲次第です。

ヘッダーの処理

加工あり

  • 最小限の IDE を取得しますが、Eclipseやその他の Java IDE を簡単に使用できます。
  • メモリ管理(ガベージ コレクション)を利用できます
  • アプレットをオンラインで (Java アプレットまたは「スリム化された」javascript ポートを使用して、Processingjsまたはp5jsで Canvas 2D を使用して)、または Linux/OSX/Windows 用のデスクトップ アプリケーションを (Java ランタイムを介して) 公開できます。Processing 1.5.1 より新しいバージョンでは、アプレットがエクスポートされないことに注意してください。これは、コマンド ラインまたは Eclipse を使用して行うことができます。
  • iProcessingまたはより高速なP5Nitroを使用し、最近ではRaspberry PIを使用して、 Androidおよび (サードパーティ ツールを使用して) iPhone に発行できます。
  • その機能を拡張するために、ほぼ 200 のライブラリを取得します。
  • フォーラム、かなりの数の書籍、およびOpenProcessing 、 SketchPatchhascanvasSketchPadなどのオンラインの「遊び場」からサポートを受けられます。

OpenFrameworks ロゴ

OpenFrameworks の場合:

  • IDE を選択します (OSX 上の XCode、Code::Blocks、VC++)
  • 独自のメモリ (malloc、ポインター、その他すべて) を管理できますが、最新の C++ では必要ありません。
  • プロジェクトをネイティブ アプリケーションとして公開できます (ランタイムは必要ありません)。
  • 現在、オンラインで簡単に公開することはできませんが、これは将来変更される可能性があります ( Arturo Castro の of-emscripten の進捗状況を参照してください) emscriptenを使用してオンラインで公開できます。
  • iPhoneに、OF 007以降はAndroidに、OF 0.8.0 はRaspberry PIPandaboardなどの armv6 および armv7 デバイスに公開できます。
  • その機能を拡張するために、2000 を超えるアドオン(すべてが維持されているわけではありません) を取得します。
  • 非常に活発で役立つフォーラムからサポートを受けており、このオンライン ブックまたは紙のまたは2冊でそれについて読むことができます。

これらは今頭に浮かんだことの一部であり、他にもある可能性があります。

個人的には、本当に基本的な使い捨てプロトタイプを Processing で書く方が簡単だと思いました。速度が主要な決定要因ではない状況では、Processing がうまく機能しますが、それ以外の場合は、Processing プロトタイプを openFrameworks に移植します (ほとんどの場合、これは簡単に実行できます)。

例としては、分析や合成など、オーディオに関係するアプリケーションがあります。複雑さにもよりますが、Java ガベージ コレクターは、予期しないときにスイープを実行し、応答性が必要なときに煩わしさを引き起こします。

要するに、どちらも非常に優れていますが、 openFrameworksの方が高速です。ただし、メモリを自分で管理することで、その速度の代償を払うことになります。

オンラインでデプロイするという点では、プロジェクトに大きく依存します。単純なプロジェクトであれば、おそらく p5.js が他の js ライブラリとの統合の点で最も簡単かもしれません。oF エクスポートは、JavaScript に手動で移植するには時間がかかりすぎる、大きくかさばる複雑なコードの場合に便利ですが、Emscripten プロジェクトは大きくなり (たとえば、 の場合は 17.5MB opencvExample) (したがって、セルラー フレンドリーではありません)、Web ページから oF アプリ関数を呼び出す必要がある場合は、独自のJS -> C++バインディングを追加します。

また、C++ に興味がある場合は、libcinderまたはPolycodeも参照してください。

HTH

于 2011-03-13T19:53:27.400 に答える