0

指定した色から線を自由に描くことができる音楽アプリケーションを作成しています。トラックバーがその上を通過し、曲線と色を検出して、曲線に応じてサウンドや変更されたピッチなどを出力します。

私が探しているのは、線や曲線を検出するためのヘルプです。それらは、BUfferedImageとしてラベルに描画されます。以下はスクリーンショットです:

描画/音楽アプリケーションのGUI

トラックバーを表すために描いた黒い線ですが、実際には、線の検出方法に応じて、drawRectによって描画された長方形またはイメージパネルになります。

私の質問:

  • 黄色、緑色などの線とその曲線を検出して、そのデータを処理するにはどうすればよいですか?そのデータを取得すると、各色の割り当てサウンドごとにゲインとピッチを簡単に変更できます。ありがとう!
4

1 に答える 1

1

少なくとも、ユーザーの描画モーションの座標を保存する必要があります。要件に応じて、これらをポイントとして保存したり、線分や曲線の表現に変換したりできます。もちろん、このモデルの一部として、ストローク、色、その他必要なものをすべて保存します。

java.awt.Shapeこれを達成するために、抵抗が最も少ないパスでは、おそらくすべてを利用する必要があると思いますjava.awt.geom。具体的には、ユーザーが描いた各要素を、ユーザーが描いた動きに応じて1つ以上のオブジェクトPath2Dとして表現したいと思います。Area次に、GUIでこれらのモデルをカスタムコンポーネントにレンダリングします。

Path2Dは、PathIteratorを介してアクセス可能な線と曲線として動きを保存します。で表されるトラックバーを指定Rectangle2Dすると、ジオメトリの比較と結合に使用できるさまざまな方法を使用できます。つまり、intersects(Rectangle2D)ここではShapeインターフェイスを使用できます。ジオメトリモデルがトラックバーと交差する場合は、交差している実際のサブセグメントが見つかるまで、パスコンポーネントを反復処理できます。これにより、ローカルスロープが得られます。

于 2013-02-27T22:23:02.747 に答える