求解两个二维向量的角平分线向量
时间: 2024-02-17 18:02:09 浏览: 34
对于两个二维向量 u = [ux, uy] 和 v = [vx, vy],它们的角平分线向量 w 可以通过以下步骤求解:
1. 计算两个向量的模长:
```
lu = norm(u);
lv = norm(v);
```
2. 计算两个向量的夹角:
```
cos_theta = dot(u, v)/(lu*lv);
sin_theta = norm(cross(u, v))/(lu*lv);
theta = atan2(sin_theta, cos_theta);
```
这里使用了 dot() 函数计算点积,norm() 函数计算模长,cross() 函数计算叉积,atan2() 函数计算反正切值。注意,反正切值要使用 atan2() 函数,因为它可以根据向量的正负来确定角度的符号。
3. 计算角平分线向量的方向:
```
w = (lu*cos(theta/2)*v + lv*cos(theta/2)*u)/(2*cos(theta/2));
```
这里使用了向量的线性运算,将两个向量按照一定的比例相加,得到角平分线向量 w。
完整代码示例:
```
u = [2, 3];
v = [3, 1];
lu = norm(u);
lv = norm(v);
cos_theta = dot(u, v)/(lu*lv);
sin_theta = norm(cross(u, v))/(lu*lv);
theta = atan2(sin_theta, cos_theta);
w = (lu*cos(theta/2)*v + lv*cos(theta/2)*u)/(2*cos(theta/2));
```
其中,u 和 v 是两个二维向量,w 是它们的角平分线向量。