Я уже закончил методы вычисления длин сторон и сейчас пытаюсь использовать закон косинусов, чтобы найти один из углов. Мне нужна помощь в этой области:
Кто-нибудь знает код расчета обратного синуса, 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());
}
}
Фактический результат: 8,54400374531753
Как это исправить?< /п>
Подробнее здесь: https://stackoverflow.com/questions/400 ... os-and-tan
Мобильная версия