当前位置: 首页 > news >正文

计算几何 点乘 两点间距离 两向量夹角

点乘

点乘(也称为内积、标量积或数量积)是线性代数中两个向量之间的一种运算,其结果是一个标量(即一个单一的数,而不是向量)。对于两个n维向量a=(a 1 ,a 2 ,…,a n )和b=(b 1 ,b 2 ,…,b n ),它们的点乘定义为:
在这里插入图片描述

或者,使用更简洁的向量符号表示为:
在这里插入图片描述

点乘具有几个重要的性质,包括但不限于:

交换律:a⋅b=b⋅a
分配律:a⋅(b+c)=a⋅b+a⋅c
与标量的乘法:k(a⋅b)=(ka)⋅b=a⋅(kb),其中k是标量。
零向量:任何向量与零向量的点乘都是0,即a⋅0=0。
模与夹角:点乘还可以用来计算两个向量之间的夹角θ的余弦值,

在这里插入图片描述

,其中∣a∣和∣b∣分别是向量a和b的模(长度)。
点乘在物理和工程中有广泛的应用,例如,在力学中,力向量与位移向量的点乘给出了力所做的功;在电学中,电场强度向量与电荷移动向量的点乘给出了电场力对电荷所做的功。

c++代码
		double dot(const std::tuple<double, double>& O, const std::tuple<double, double>& A, const std::tuple<double, double>& B) {double oa_x = std::get<0>(A) - std::get<0>(O);double oa_y = std::get<1>(A) - std::get<1>(O);double ob_x = std::get<0>(B) - std::get<0>(O);double ob_y = std::get<1>(B) - std::get<1>(O);return oa_x * ob_x + oa_y * ob_y;}

求两点之间距离

		double dis(const std::tuple<double, double>& p1, const std::tuple<double, double>& p2){double ans = pow((std::get<0>(p1) - std::get<0>(p2)),2 )+ pow((std::get<1>(p1) - std::get<1>(p2)), 2);return sqrt(ans);}

两向量OA,OB的夹角

	double angle(const std::tuple<double, double>& O, const std::tuple<double, double>& A, const std::tuple<double, double>& B){return acos(dot(O, A, B) / (dis(O, A) * dis(O, B)));}

参考

已知两直线 计算其交点

在这里插入图片描述

直线方程如何求取c

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ STL copy_backward, move_backward 用法
  • B3952 [GESP202403 一级] 小杨买书
  • python实现图像分割算法4
  • AI人工智能开发环境配置
  • 【人工智能】NLP入门指南:自然语言处理基础全解析
  • 计算机毕业设计选题推荐-学生作业管理系统-Java/Python项目实战
  • 工作纪实54-git使用ssh方式
  • 【第一章】软件测试人员的成长技能树:打造全方位的技能体系
  • PHP 表单处理基础
  • NVIDIA A100 和 H100 硬件架构学习
  • springboot集成RabbitMQ
  • 16进制转换-系统架构师(三十九)
  • 2023 RoboCom CAIP本科组决赛-RC-u3 兰州拉面派餐系统
  • vulhub:Apache解析漏洞CVE-2017-15715
  • 计网:从输入URL到网页显示期间发生了什么
  • chrome扩展demo1-小时钟
  • Git 使用集
  • Hexo+码云+git快速搭建免费的静态Blog
  • Linux下的乱码问题
  • Mithril.js 入门介绍
  • mysql外键的使用
  • MySQL用户中的%到底包不包括localhost?
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • Python socket服务器端、客户端传送信息
  • Vue2.0 实现互斥
  • 汉诺塔算法
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 人脸识别最新开发经验demo
  • 事件委托的小应用
  • 微信支付JSAPI,实测!终极方案
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • const的用法,特别是用在函数前面与后面的区别
  • 阿里云ACE认证之理解CDN技术
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #pragma预处理命令
  • #QT(智能家居界面-界面切换)
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • #前后端分离# 头条发布系统
  • #职场发展#其他
  • (03)光刻——半导体电路的绘制
  • (C++哈希表01)
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (java)关于Thread的挂起和恢复
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (六)Hibernate的二级缓存
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (三)c52学习之旅-点亮LED灯
  • (十六)视图变换 正交投影 透视投影
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)LINQ之路
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net实现客户区延伸至至非客户区