Код для обратного sin, cos и tanJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Код для обратного sin, cos и tan

Сообщение Anonymous »

Я пишу программу, которая вычисляет длину сторон, размеры углов в каждой вершине (в градусах) и площадь треугольника. Треугольник определяется координатами x и y трех его вершин, которые вводятся пользователем.

Я уже закончил методы вычисления длин сторон и сейчас пытаюсь использовать закон косинусов, чтобы найти один из углов. Мне нужна помощь в этой области:

Кто-нибудь знает код расчета обратного синуса, cos и tan с ответом в градусах?

Это скорее математический вопрос, но если кто-нибудь сможет помочь, я был бы признателен. Я также не знаю, как найти высоту треугольника, зная длину его сторон. В следующем методе, который я напишу, потребуется найти площадь.

тест:

Код: Выделить всё

public double getAngleA() {
double angleA = Math.acos((side2 * side2 + side3 * side3 - side1 * side1)/(2.0 * side2 * side3));
double angleA = Math.toDegrees(angleA);
return angleA;
}
Класс объекта:

Код: Выделить всё

public class Triangle
{
private double x1;
private double y1;
private double x2;
private double y2;
private double x3;
private double y3;
private double sideA;
private double sideB;
private double sideC;
private double angleA;
private double angleB;
private double angleC;

public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
{
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y1 = y3;
}
public double getSideC()
{
sideC = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
return sideC;
}
public double getSideA()
{
sideA = Math.sqrt((x2-x3)*(x2-x3) + (y2-y3)*(y2-y3));
return sideA;
}
public double getSideB()
{
sideB = Math.sqrt((x1-x3)*(x1-x3) + (y1-y3)*(y1-y3));
return sideB ;
}
public double getAngleA() {

double angleA = Math.acos((sideB * sideB + sideC * sideC - sideA * sideA)/(2.0 * sideB * sideC));
angleA = Math.toDegrees(angleA);
return angleA;
}
public double getAngleB() {

double angleB = Math.asin((Math.sin(angleA) * sideB)/sideA);
return angleB;
}
public double getAngleC() {

double angleC = 180 - (angleA+angleB);
return angleC;
}

}
Тестер:

Код: Выделить всё

public class TriangleTester {

public static void main(String[] args) {
Triangle t = new Triangle (1, 2, 9, 7, 7, 10);
System.out.println(t.getSideC());
}

}
Ожидаемый результат: около 9,43398
Фактический результат: 8,54400374531753

Как это исправить?< /п>

Подробнее здесь: https://stackoverflow.com/questions/400 ... os-and-tan
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»