web-dev-qa-db-ja.com

openFrameworksと処理

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

42
Hossein

あなたは正しいです。1つはC++でもう1つはJavaです。これらの違いはこれらのフレームワークに適用されるため、どちらが最適かを決めるのは設定/プロジェクトスコープ次第です。

processing header

Processingの場合:

  • 最小限のIDEを取得しますが、 Eclipseを簡単に使用できます または他のJava IDEs。
  • メモリ管理(ガベージコレクション)
  • オンラインでアプレットを公開できます(Javaアプレットまたは processingjs または p5js でCanvas 2Dを使用してJavaScriptポートを「スリム化」)またはLinux/OSX/Windows用デスクトップアプリケーション(Javaランタイム経由)。Processing1.5.1より新しいバージョンでは、アプレットはエクスポートされなくなりました。これは、コマンドラインまたはEclipseを使用して実行できます。
  • Android および(サードパーティツールを使用)を使用して) iProcessing またはより高速な P5Nitro および より最近/-Raspberry Piを使用してiPhoneに公開できます
  • 機能を拡張するために、ほぼ200個の ライブラリ を入手できます。
  • フォーラム 、かなりの数の 書籍 および OpenProcessingSketchPatchhascanvas または SketchPad のようなオンラインの「遊び場」からのサポートがあります。

OpenFrameworks logo

OpenFrameworksの場合:

これらは今頭に浮かんだことの一部ですが、もっとあるかもしれません。

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

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

要するに、両方とも本当にクールですが、openFrameworks速いです。あなたは自分でメモリを管理することでその速度の代価を払うことになります。

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

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

HTH

81
George Profenza