杭电OJ2080(C)余弦定理求夹角

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define pi  3.14159265


int main()
{
     double x1,y1,x2,y2;
     int T;
     scanf("%d",&T);
     while(T>0){
        scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
double u = x1*x2+y1*y2;
        double mu = sqrt(x1*x1+y1*y1) * sqrt(x2*x2+y2*y2);
printf("%.2lf\n",acos(u/mu)*180/pi); 
T--;
}
return 0;

新知识点:

1.余弦定理中  cosA = (U*V) /   (|U|*|V|)             //及用向量法,使用向量的乘积除以向量的模

   U*V = x1*x2 + y1*y2            |U| = sqrt(x1*x1 + y1*y1)     |V| = sqrt(x2*x2 + y2*y2);

2.使用反函数求出来的为弧度,如果我们要转化为度数,那么就要用到以下公式(很好理解,弧度最大为2π,所以用反函数  *180/π  会的到一个大的角度)。注意cosA中的A应该是个弧度——例如求  cos30° = cos(30*180/PI)   //PI为π 3.14159    

弧度和角度的换算关系如下:
1弧度=180/π度
1度=π/180弧度
也就是说,180度=π 弧度

3.夹角公式  https://baike.baidu.com/item/夹角公式/6773533?fr=aladdin

4.余弦定理 

https://baike.baidu.com/item/%E4%BD%99%E5%BC%A6/73670?fr=aladdin&fromid=9602078&fromtitle=%E4%BD%99%E5%BC%A6%E5%87%BD%E6%95%B0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值