2017-02-18 14 views
1

私は描画アプリケーションをプログラミングしました。私は自分の描画のすべてのX Yを取得したいと思います。つまり、私が画面に触れるたびに、座標xとyを2次元のテーブルに入れます。cordinate X Y draw Android

座標が変わったときに私は乾いたトーストを見つけました。私はそれらがmovetouchメソッドでテーブルを宣言していますが、私はまだ配列の10行を見て乾杯します。トーストの調整が変更されたので、xとyが変わるたびに値が破られることを理解しました。私は

public boolean onTouchEvent(MotionEvent event) { 
    float x = event.getX(); 
    float y = event.getY(); 
     switch (event.getAction()) { 

      case MotionEvent.ACTION_DOWN: 

        startTouch(x, y); 
        invalidate(); 
        break; 

      case MotionEvent.ACTION_UP: 

        upTouch(); 
        invalidate(); 
        break; 

      case MotionEvent.ACTION_MOVE: 

        moveTouche(x, y); 
        invalidate(); 
        break; 

     } 
     return true; 
    } 

方法を植えていますmoveTouch

public void moveTouche (float x,float y) { 
    if ((canDraw)&& drawing) { 
    float dx = Math.abs(x - mX); 
    float dy = Math.abs(y - mY); 
    if(dx >= Tolerance || dy >= Tolerance){ 
     path.quadTo(mX,mY,(x+mX)/2,(y+mY)/2); 
     mX = x ; 
     mY = y; 
     double[][] point = new double [99][2]; 
     for (int i = 0; i < 99; i++) { 

      point[i][0]=x; 
      point[i][1]=y; 


     } 
     Toast.makeText(getContext(),"y = "+point[10][1]+" ",Toast.LENGTH_LONG).show(); 

    }} 
} 

enter image description here

+0

どのように動作しませんか? –

+0

@AndyTurnerそれは私にちょうど1つのポイントを与える – CamlX

+0

あなたはユーザーが触れる画面に描画する何かをしたいですか? –

答えて

2

任意のパスから任意の数のポイントを読み取ることができます。パスの途中から座標を読み取る方法の例:

PathMeasure pm = new PathMeasure(myPath, false); 
//coordinates will be here 
float aCoordinates[] = {0f, 0f}; 

//get coordinates of the middle point 
pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null); 

パスの始点から終点座標までの距離を渡すことができます。

+0

ありがとう:)ただ別の質問、私が描いた線(黒)または曲線を描画した直線が描画であれば、どのように座標を赤い描画、アニメーションを誘発する – CamlX

+0

喜んで私はあなたとスティックし、あなたを助けた:)私の答えがあなたを助けた場合は、この答えを受け入れ、upvote。 –

+0

2つのカーブの比較大丈夫私はあなたの次の問題のために何ができるか見てみましょう:)例のための –