题目描述
平面上有三个点A、B、C,求∠ABC的大小
输入格式
输入有若干行,每行有6个实数x1,y1,x2,y2,x3,y3。
表示平面上的三个点A(x1,y1),B(x2,y2),C(x3,y3)。
输出格式
输出∠ABC的大小,单位为度(0~180),结果保留两位小数。
输入样例
3 0 0 0 0 1
-5 0 0 0 1 1
输出样例
90.00
135.00
import java.util.*;
public class Main
{
public static void main(String[] args)
{
double PI = Math.PI;
Scanner in = new Scanner(System.in);
while(in.hasNextDouble())
{
double x1=in.nextDouble();
double y1=in.nextDouble();
double x2=in.nextDouble();
double y2=in.nextDouble();
double x3=in.nextDouble();
double y3=in.nextDouble();
double vector1x = x1-x2;
double vector1y = y1-y2;
double vector2x = x3-x2;
double vector2y = y3-y2;
double t = ((vector1x)*(vector2x) + (vector1y)*(vector2y))/
(Math.sqrt(Math.pow(vector1x, 2) + Math.pow(vector1y, 2))*
Math.sqrt(Math.pow(vector2x, 2) + Math.pow(vector2y, 2)));
System.out.println(String.format("%.2f",Math.acos(t)*(180 / PI)));
}
}
}
余弦定理,算出一个数,最后再变成角度