私はAndroidでアプリケーションを開発しています。ここでandroid.graphicsを取得する必要があります。 pathの値を比較して比較します。android.graphics.pathの理解とandroid.graphics.pathの値の比較
は、次の画像を検討してください。
と
最初の画像は、直線と生成されたパスの値を示しています。同様に、第2の画像も同様の直線を示し、異なるPath値を有する。
生成される値を理解できません。誰も正確に生成された値が何を意味するかについて説明することはできますか?画面の座標からパスの値を推測することはできますか?
また、私のアプリケーションでは、パスの値を比較したいと思います。上の図に示されている線は似ています。私のアプリケーションでは、それらを比較して同じ行にしたいと思います。そして、私はラインを比較するだけではなく、カーブとそのような描画可能なすべての形状があります。比較のために、私は最初に私のパスの値を正規化する必要があります(私の現在のキャンバスにはgetMatrixと呼んでいますか?)、異なるスクリーンサイズに対して同じ効果を持たせるためには?
他の方法がありますが、これははるかに簡単で、図のパスの重心を見つけることができます。明らかに、線は曲線などと比較して異なる位置に重心を有する。しかし、このような比較はあまり正確ではありません。私はいくつかの値を保存し、生成されたパスの値と保存された値を比較し、より正確な精度を持つように重心を比較したかったのです。しかし、そのために、私は生成されたパスの値を理解する必要があります!
助けを借りてください!ありがとう! :-)
編集:私はStringに私のパスの値を変換するため使用してい
コード。私のパスの値はArrayList
(pointsToDraw
)に格納されています。ここでは、コードです:
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
synchronized(pointsToDraw){
for(Path path : pointsToDraw)
{
stringPoints.add(String.valueOf(path));
}
}
TextView b1Text = (TextView) findViewById(R.id.GText);
for(String s : stringPoints)
{
b1Text.setText(s);
}
}
私はこの質問の最初の部分を理解するのに苦労しています。具体的には、「生成される価値」を意味します。文字列に表示される文字列は何ですか?これはpath.toString()の結果ですか? – Trevor
@TrevorPageいいえ、私は 'String.valueof(path)'を使用しています。質問を編集し、文字列を生成するために使用しているコードを追加します。 –
実際の文字列値や 'toString()'関数を持たないため、パスを見ているだけではありませんか?単に「これはandroid.graphics.Pathのオブジェクトで、現在はメモリアドレスblahblahbalhにあります」と表示されます。 – Nanne