首先要了解一些线性代数的知识,向量积和数量积;atan2f是math库内的函数,而cross求的是向量积的模,dot求的是数量积。

可以通过atan2f()函数求两个向量的夹角,代码如下:

float angle = atan2f(a2.cross(b2), a2.dot(b2));
//这个求的是向量积,二维坐标下也就是一个二阶行列式的计算inline float cross(const Vec2& other) const {return x*other.y - y*other.x;}//这个求的是数量积
inline float Vec2::dot(const Vec2& v) const
{return (x * v.x + y * v.y);
}

然后,我们要知道下面两个公式:

而通过上述的公式可知: arctan(tan⊙)=⊙,而向量积的模除以数量积的模等于tan⊙,经过这样一换算,很简单的就能得出这两个向量之间的角度。

参考资料:https://blog.csdn.net/m0_37316917/article/details/77200577?utm_source=blogxgwz3

atan2f()函数详解相关推荐

  1. C语言网络编程:accept函数详解

    文章目录 前言 函数描述 代码实例 如何得到客户端的IP 和 端口号 前言 当使用tcp服务器使用socket创建通信文件描述符,bind绑定了文件描述符,服务器ip和端口号,listen将服务器端的 ...

  2. 【FFmpeg】函数详解(三)

    FFmpeg函数详解 14.av_write_frame 15.av_interleaved_write_frame 16.av_write_trailer 17.avio_close 18.av_i ...

  3. 【FFmpeg】函数详解(二)

    FFmpeg函数详解 9.av_dump_format 10.avio_open 11.avformat_write_header 12.avcodec_send_frame 13.avcodec_r ...

  4. 【FFmpeg】函数详解(一)

    FFmpeg函数详解 一.错误码相关 1.AVERROR 2.av_strerror 3.其他错误码解释 二.编解码 1.获取编解码器 2.申请.释放上下文环境 3.打开编码器avcodec_open ...

  5. 【ES6】Generator函数详解

    [ES6]Generator函数详解 一.Generator函数简介 基本概念 函数写法 yield关键字介绍 二.next方法的参数 三.for...of循环 四.关于普通throw()与Gener ...

  6. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  7. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  8. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

  9. scanf函数详解与缓冲区

    1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数,遇到文件结束返回EOF,出错返回0. 函数功能: sca ...

最新文章

  1. Linux的简单Nginx
  2. Python从菜鸟到高手(2):清空Python控制台
  3. 通过Matlab发送邮件要注意的问题
  4. spring 整合junit进行测试
  5. 限制python内存上限_Python限制内存和CPU使用量的方法(Unix系统适用)
  6. 20155330 《信息安全系统设计基础》课程总结
  7. OpenGL phong lighting冯氏光照的实例
  8. suse linux 11 HBA信息,HP BL660 GEN8 SUSE 11 查询HBA信息 驱动版本 固件版本 设备名称
  9. steam当前计算机无法,steam无法打开【操作思路】
  10. 改手机为自动开机的车载导航仪
  11. ShowDown.js MD 转HTML 时的问题
  12. 图解推导爬楼梯(跳台阶)问题详细过程
  13. HDU2370——Convert Kilometers to Miles
  14. C程序设计语言(第2版)
  15. 孙陶然将公司管理分为三个阶段
  16. mysql_native_password_连接报错'mysql_native_password'
  17. 反恐精英代码_CS:GO和军团要塞2源代码泄漏,Valve:稳住
  18. RK3399 Android7.1电脑端adb devices检测不到设备
  19. [ERP/鼎捷E10][产品结构管理]料件认可
  20. 培智学校计算机教学案例,希沃电子白板在培智语文课堂教学中的运用案例分析——以课例《四季的衣服》为例...

热门文章

  1. 为什么容器内存占用居高不下,频频 OOM
  2. C++多态之虚函数表详解及代码示例
  3. markdown工作随笔总结
  4. 中国液态金属量子计算机,央视曝光中国液态金属成果全球领先,可能成为未来飞碟动力源...
  5. 深度学习库 trax 简单事例Trax Quick Intro
  6. 2022年河北省注册会计师考试《会计》精选题及答案
  7. 使用python 多线程自动采集内容并发布在自己的网站
  8. Nacos如何实现服务自动注册
  9. 做网站SEO优化不能忽略的细节
  10. LNK2019的常见情况及解决方法