通过余弦定理从点积的定义推出点积的公式
首先证明余弦定理:
有边为a,b,c,对应夹角为a_angle,b_angle,c_angle
分别从定点向对应边作对角线可以发现如下关系成立:
(1)
a=b*cos c_angle + c * cos b_angle
(2)
b=a*cos c_angle + c * cos a_angle
(3)
c=a*cos b_angle + b * cos a_angle
对(1)*a有:
a^2=a*b*cos c_angle + a*c * cos b_angle
同样有:
b^2=b*a*cos c_angle + b*c * cos a_angle
c^2=c*a*cos b_angle + c*b * cos a_angle
比较上面三个,可以发现有:
a^2+b^2={a*b*cos c_angle + a*c * cos b_angle } + {b*a*cos c_angle + b*c * cos a_angle}
GO
移项有:
a^2+b^2={a*b*cos c_angle + b*a*cos c_angle}+ { a*c * cos b_angle + + b*c * cos a_angle}
GO
a^2+b^2=2*a*b*cos c_angle + c^2
现在继续往下证明:
假设a,b,c的在三维坐标下
(4)
a^2=a1^2+a2^2+a3^2
同样有:
(5)
b^2=b1^2+b2^2+b3^2
(6)
c^2=(a1-b1)^2+(a2-b2)^2+(a3-b3)^2
对(6)进行化简有:
c^2=a1^2+a2^2+a3^2+ b1^2+b2^2+b3^2 - 2*a1*b1-2*a2*b2-2*a3*b3
综合(4),(5)有:
a^2+b^2-2*a*b*cos c_angle=a^2+b^2 - 2*a1*b1-2*a2*b2-2*a3*b3
Go
2*a*b*cos c_angle=2*a1*b1+2*a2*b2+2*a3*b3
Go
a*b*cos c_angle=a1*b1+a2*b2+a3*b3
而点积的定义形式为:point_a*point_b=a1*b1+a2*b2+a3*b3
从而得到公式point_a*point_b=a*b*cos c_angle.
摘自:chenbingchenbing的专栏
补充:软件开发 , C语言 ,