三维向量的夹角

您所在的位置:网站首页 两个向量夹角cos公式 三维向量的夹角

三维向量的夹角

#三维向量的夹角| 来源: 网络整理| 查看: 265

项目场景:

计算三维坐标组成的夹角

三维向量的夹角

参考:[三维向量夹角在线计算](https://www.23bei.com/tool/300.html)

公式: 三维向量夹角的计算公式如下:

假设两个三维向量分别为:a=(x1,y1,z1),b=(x2,y2,z2)。 向量a的模:|a|=√(x12+y12+z1^2)。 向量b的模:|b|=√(x22+y22+z2^2)。 两个向量的点乘:a·b=(x1x2+y1y2+z1z2)。 设两个向量的夹角为θ,则有:cosθ=(x1x2+y1y2+z1z2)/[√(x12+y12+z12)*√(x22+y22+z22)]。

上述公式均是以空间三维坐标给出的,如果令坐标中的z=0,则得到平面向量的计算公式。 两个向量夹角θ的取值范围是:[0,π]。当夹角为锐角时,cosθ>0;当夹角为钝角时,cosθ this.x = x; this.y = y; this.z = z; } }

计算公式

/** * 获取三维向量的夹角. * * @param center 夹角中心点 * @param start 起始点 * @param end 结束点 * @return 返回夹角 */ public static float getTdAngle(Point center, Point start, Point end) { // 向量1 float x1 = start.x - center.x, y1 = start.y - center.y, z1 = start.z - center.z; // 向量2 float x2 = end.x - center.x, y2 = end.y - center.y, z2 = end.z - center.z; System.out.println("x1/y1/z1=" + x1 + "/" + y1 + "/" + z1); System.out.println("x2/y2/z2=" + x2 + "/" + y2 + "/" + z2); // 向量的点乘 float vectorDot = x1*x2 + y1*y2 + z1*z2; // 向量1的模 double vectorMold1 = Math.sqrt(Math.pow(x1, 2) + Math.pow(y1, 2) + Math.pow(z1, 2)); // 向量2的模 double vectorMold2 = Math.sqrt(Math.pow(x2, 2) + Math.pow(y2, 2) + Math.pow(z2, 2)); // 向量的夹角[0, PI],当夹角为锐角时,cosθ>0;当夹角为钝角时,cosθ


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3