2015-05-29 22 views
-1

我想要做android應用程序來計算android上畫布的距離點。基本上我有4點,(x1,y1)(x2,y2),(x3,y3) and (x4,y4).我想要做的是計算最大比率長度,D1在最小長度,D2 ..爲D1,我需要計算兩點之間的距離(x1,y1)(x2,y2)和D2,我需要計算距離爲另一點(x3,y3)(x4,y4) ..爲點,它只是用戶輸入。用戶將放置該值並直接計算比率D1/D2。在android中計算畫布點的距離

有人可以幫助我嗎?我知道公式,但不知道如何去做這個功能。

public class MainActivity5 extends Activity implements OnClickListener { 

EditText editText1; 
EditText editText2; 
EditText editText3; 
EditText editText4; 
EditText editText5; 
EditText editText6; 
EditText editText7; 
EditText editText8; 
Button button1; 
TextView tvResult; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_activity5); 


     // find the elements 
    EditText editText1 = (EditText) findViewById(R.id.editText1); 
    EditText editText2 = (EditText) findViewById(R.id.editText2); 
    EditText editText3 = (EditText) findViewById(R.id.editText3); 
    EditText editText4 = (EditText) findViewById(R.id.editText4); 
    EditText editText5 = (EditText) findViewById(R.id.editText4); 
    EditText editText6 = (EditText) findViewById(R.id.editText5); 
    EditText editText7 = (EditText) findViewById(R.id.editText6); 
    EditText editText8 = (EditText) findViewById(R.id.editText7); 


    button1 = (Button) findViewById(R.id.button1); 

    tvResult = (TextView) findViewById(R.id.tvResult); 

    // set a listener 
    button1.setOnClickListener((OnClickListener) this); 
    } 

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 

String x1 = editText1.getText().toString(); 
String y1 = editText2.getText().toString(); 
String x2 = editText3.getText().toString(); 
String y2 = editText4.getText().toString(); 
String x3 = editText5.getText().toString(); 
String y3 = editText6.getText().toString(); 
String x4 = editText7.getText().toString(); 
String y4 = editText8.getText().toString(); 

//calculating distance 
double dist = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1- y2, 2)); 

//what should i put here 
} 
+0

這些編輯文本假設是什麼?整型? – tachyonflux

+0

編輯文本是整數 – xainxy

回答

0

您需要解析字符串,然後才能將它們傳遞給Math方法。 A try-catch塊可用於檢查無效數字個案。

public void onClick(View arg0) { 
    try { 
     double x1 = Double.parseDouble(editText1.getText().toString()); 
     double y1 = Double.parseDouble(editText2.getText().toString()); 
     double x2 = Double.parseDouble(editText3.getText().toString()); 
     double y2 = Double.parseDouble(editText4.getText().toString()); 
     double x3 = Double.parseDouble(editText5.getText().toString()); 
     double y3 = Double.parseDouble(editText6.getText().toString()); 
     double x4 = Double.parseDouble(editText7.getText().toString()); 
     double y4 = Double.parseDouble(editText8.getText().toString()); 

     //calculating distance 
     double d1 = Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1- y2, 2)); 
     double d2 = Math.sqrt(Math.pow(x3 - x4, 2) + Math.pow(y3- y4, 2)); 

     tvResult.setText(Double.toString(d1/d2)); 
    } catch (NumberFormatException e) { 

    } 
} 
+0

謝謝!那裏碰到什麼事?我不明白。你能解釋一下嗎? – xainxy

+0

對不起,我沒有閱讀你上面的解釋。 tq – xainxy

+0

爲什麼它不顯示任何結果? – xainxy