您的位置:首页 > 财经 > 金融 > 计算几何 点乘 两点间距离 两向量夹角

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

2024/11/19 17:19:00 来源:https://blog.csdn.net/weixin_45751713/article/details/140633512  浏览:    关键词:计算几何 点乘 两点间距离 两向量夹角

点乘

点乘(也称为内积、标量积或数量积)是线性代数中两个向量之间的一种运算,其结果是一个标量(即一个单一的数,而不是向量)。对于两个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

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com