我正在开发一个可以计算梯子距离墙壁有多远的应用程序,在这种情况下,梯子是斜边,并且其值将根据用户输入而变化,因此它将以英尺为单位计算,X = 73度,A = cos 73相邻/斜边。检查波纹管图像以便更好地理解:
我做了一些研究,我发现梯子上的梯级之间的距离约为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
} });
} }
答案 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);