# Android Path Collisionの問題/ソリューション -- android フィールド と path フィールド と collision-detection フィールド 関連 問題

## Android Path collision problems/solutions

0

### 問題

これを達成するためのより良い方法に関する提案？基本的に、私は、2つのAndroidパス（描画パス、次にユーザーが消去モードのときに作成するパス）の間の衝突を決定しようとしていますが、上記の理論的には実際には実行可能ではありません。

ありがとう、

Paul

I have a drawing application in Android that allows the user to draw with their finger, and then stores the resulting shapes as Android `Path`s. To allow the user to delete individual `Path`s they have drawn, I have implemented this solution that uses a bounding `Rect` for each `Path`, and then uses an inner multi-dimensional binary array to represent the pixels inside the bounding `Rect`. I then populate the array by taking the Path's control points and track along it using the mathematical equation for a quadratic bezier curve, setting each element in the array that would have a pixel underneath it to 1.

Using the above setup, when in erasing mode, I first check for collision between the users finger and the bounding `Rect`, and if that collides, I then check to see if the pixel being touched by the user is set to a 1 in the array.

Now, when a user loads a note, I load all of the shapes into an `ArrayList` of 'stroke' objects so that I can then easily display them and can loop through them checking for collision when in erase mode. I also store the `Rect` and binary array with the strokes in the custom object. Everything is working as expected, but the memory footprint of storing all of this data, specifically the binary array for each Path's bounding `Rect`, is getting expensive, and when a user has a large number of strokes I am getting a `java.lang.OutOfMemoryError` on the portion of my code that is creating the array for each stroke.

Any suggestions on a better way to accomplish this? Essentially, I am trying to determine collision between two Android Paths (the drawing Path, and then a Path that the user creates when in erase mode), and while the above works in theory, in practice it is not feasible.

Thanks,

Paul

</div

## 回答リスト

0

ベストアンサー

「バイナリアレイ」の実際の表現は何ですか？私はあなたが保存するために必要な実際のデータを反映するように表現を微調整するかどうか（例えば、このxとzピクセルのためのこのyのこのyで）あなたが過度のサイズなしに必要なものを保存することができるでしょう。

ピクセルごとに1バイト、または8ピクセルあたりの実際のバイト配列を格納する（それが行っているのであれば）この使用には必要ありません。

もう1つの代替案は、コントロールポイントとバウンディングボックスだけでビットマップをまったく保存することではありません。タッチが境界ボックスと交差する場合は、コントロールポイントからのビットマップを計算します。

What is the actual representation of the "binary array"? I think if you tweak the representation to reflect the actual data you need to store (for example RLE encode the bits: at this y starting at this x and for z pixels) you will be able to store what you need to without excessive size.

Storing an actual array of bytes with one byte per pixel, or per 8 pixels (if that is what you are doing) isn't necessary for this use.

Another alternative is not to store a bitmap at all, just the control points and bounding boxes. If a touch intersects a bounding box, you calculate the bitmap on the fly from the control points.

</div

## 関連する質問

9  連続2D空間における障害物回避による基本的な経路  ( Basic pathfinding with obstacle avoidance in a continuous 2d space )

1  私の箱は衝突していません  ( My boxes are not colliding )

0  XNA：レンガのリストに関する衝突をチェックします  ( Xna check collision on list of bricks )

0  GameQueryの衝突検出  ( Gamequery collision detection )
JavaScriptを使用してゲームを構築するためのjQueryとGameQueryを探索するのは初めてですので、非常に素朴に見えるかもしれないSTHについて尋ねていますが、本当にそれを取得できません。 私はスペースインベーバーのようなゲームを開発しています...

2  VHDLの長方形/ボックスの衝突  ( Rectangle box collision in vhdl )
VHDLを使用してFPGAのPongの作成に取り組んでいます。私は何日かどうかを把握しようとしている日、長方形の衝突の最善の解決策とは何ですか？バグがあるようです（下記の）。 LarsButlerの答えにアドバイスしました。 object.posit...

1  JavaScriptの3Dポリゴンの内側にある点を検出する機能は？  ( Function to detect if a point is inside a 3d polygon on javascript )

15  重力に関してゲームオブジェクトと床の間の衝突は？  ( Collisions between game objects and the floor with regards to gravity )
プレーヤー、モンスター、またはオブジェクトや床のような移動物の関係をどのように取り扱っていますか？プレイヤーは絶えず床に「落ちてバックアップしていますか？ 私が見つけた衝突に反応する2つの方法は、衝突の前にプレーヤーを前の場所に戻し、それが衝突するかどうかを...

0  衝突検出の特別な場合  ( Special case of collision detection )

1  点（int座標）が三角形の斜辺内にあるかどうかを確認する方法  ( How to check if a point int coordinates is within the hypotenuse of a triang )

6  2D連続衝突検出  ( 2d continuous collision detection )

© 2022 cndgn.com All Rights Reserved. Q＆Aハウス 全著作権所有