计算java中三角形的相邻边?

时间:2012-02-05 07:54:43

标签: java android trigonometry

我正在开发一个可以计算梯子距离墙壁有多远的应用程序,在这种情况下,梯子是斜边,并且其值将根据用户输入而变化,因此它将以英尺为单位计算,X = 73度,A = cos 73相邻/斜边。检查波纹管图像以便更好地理解:

enter image description here

我做了一些研究,我发现梯子上的梯级之间的距离约为1英尺,用户必须计算梯级的数量并将该数字输入EditText并按下按钮使用Toast显示结果时计算结果。 那么我如何能够在java中使用三角函数计算A?我如何能够将字符串从EditText转换为双精度请帮我解决这个问题,我正在研究一个学校项目,这是我的代码所以到目前为止,请告诉我我要添加或删除的内容感谢您对此的新见解! 我也手动将A转换为弧度,因为我不知道如何将度数转换为弧度!

package com.ladder;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast;  
import java.lang.Math;

public class LadderActivity extends Activity {  double x;
    double r = Math.cos(1.274090354);

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

            EditText edt1 = (EditText) findViewById(R.id.et1);
            String k = edt1.toString();


        Button btn = (Button) findViewById(R.id.bt1);
         btn.setOnClickListener(new OnClickListener() {
                        public void onClick(View v) {
                Toast.makeText(getApplicationContext(), " FT", Toast.LENGTH_SHORT).show();

                // TODO Auto-generated method stub
                            }       });
    } }

1 个答案:

答案 0 :(得分:3)

你可以使用java及以下的Math类来详细解答你的问题 将字符串从Edittext转换为double

    //Your editText
    EditText editText = null;
    //Convert editText value to double.
    String stringValue = editText.getText().toString();
    Double doubleValue = 0.0;
    try{
        doubleValue = Double.parseDouble(stringValue);
    }catch(NumberFormatException e){
        e.printStackTrace();
    }

如何将Degree转换为弧度

        double angleInDegrees = 189.0;// angle in degree
        double angleInRadians = angleInDegrees * Math.PI / 180.0;

这些是三角形的边

double Hypotenuse, Opposite, Adjacent;

计算'相邻'值。

        double angleInDegrees = (double)73;// angle in degree
        double angleInRadians = angleInDegrees * Math.PI / 180.0;

        double Adjacent = Math.cos(angleInRadians) * Hypotenuse          
        OR
        double Adjacent = Math.tan(angleInRadians)* Opposite  

计算相反的值

        Opposite = Math.sin(angleInRadians)* Hypotenuse;
        Opposite = Math.tan(angleInRadians)*Adjacent;

计算斜边值

        Hypotenuse = Opposite/Math.sin(angleInRadians);
        Hypotenuse = Adjacent/Math.cos(angleInRadians);